aboutsummaryrefslogtreecommitdiff
path: root/sdk/extensions/import/apexmodules/modules/destructible/include
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2018-01-26 21:55:41 -0800
committerBryan Galdrikian <[email protected]>2018-01-26 21:55:41 -0800
commitac961c33c61b487d982ca9cf9b04ba4ac754ecda (patch)
tree2600d61bb009f065384d548eb16fdc2d12f0f227 /sdk/extensions/import/apexmodules/modules/destructible/include
parentUpdated release notes (diff)
downloadblast-ac961c33c61b487d982ca9cf9b04ba4ac754ecda.tar.xz
blast-ac961c33c61b487d982ca9cf9b04ba4ac754ecda.zip
Apex dependency removed (used in ExtImport)
Mesh corruption and crash fit for UV fitting function Updated release_notes.txt
Diffstat (limited to 'sdk/extensions/import/apexmodules/modules/destructible/include')
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h245
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h253
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h606
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h445
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h250
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h675
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h238
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h237
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h244
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h238
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h238
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h150
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h248
-rw-r--r--sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h239
14 files changed, 4306 insertions, 0 deletions
diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h
new file mode 100644
index 0000000..f99e601
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h
@@ -0,0 +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<CachedOverlaps*>(this);
+ return *(static_cast<CachedOverlapsNS::ParametersStruct*>(tmpThis));
+ }
+
+ CachedOverlapsNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<CachedOverlapsNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..c295c60
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h
@@ -0,0 +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<DestructibleActorChunks*>(this);
+ return *(static_cast<DestructibleActorChunksNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleActorChunksNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleActorChunksNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..3b78f84
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h
@@ -0,0 +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<DestructibleActorParam*>(this);
+ return *(static_cast<DestructibleActorParamNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleActorParamNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleActorParamNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..1746d57
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h
@@ -0,0 +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<DestructibleActorState*>(this);
+ return *(static_cast<DestructibleActorStateNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleActorStateNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleActorStateNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..82b0a83
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h
@@ -0,0 +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<DestructibleAssetCollisionDataSet*>(this);
+ return *(static_cast<DestructibleAssetCollisionDataSetNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleAssetCollisionDataSetNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleAssetCollisionDataSetNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..018ea09
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h
@@ -0,0 +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<DestructibleAssetParameters*>(this);
+ return *(static_cast<DestructibleAssetParametersNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleAssetParametersNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleAssetParametersNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..f397399
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h
@@ -0,0 +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<DestructibleDebugRenderParams*>(this);
+ return *(static_cast<DestructibleDebugRenderParamsNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleDebugRenderParamsNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleDebugRenderParamsNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..25efb19
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h
@@ -0,0 +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<DestructibleModuleParameters*>(this);
+ return *(static_cast<DestructibleModuleParametersNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructibleModuleParametersNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructibleModuleParametersNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..2166d5d
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h
@@ -0,0 +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<DestructiblePreviewParam*>(this);
+ return *(static_cast<DestructiblePreviewParamNS::ParametersStruct*>(tmpThis));
+ }
+
+ DestructiblePreviewParamNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<DestructiblePreviewParamNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..0111e7a
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h
@@ -0,0 +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<MeshCookedCollisionStream*>(this);
+ return *(static_cast<MeshCookedCollisionStreamNS::ParametersStruct*>(tmpThis));
+ }
+
+ MeshCookedCollisionStreamNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<MeshCookedCollisionStreamNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..df90db7
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h
@@ -0,0 +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<MeshCookedCollisionStreamsAtScale*>(this);
+ return *(static_cast<MeshCookedCollisionStreamsAtScaleNS::ParametersStruct*>(tmpThis));
+ }
+
+ MeshCookedCollisionStreamsAtScaleNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<MeshCookedCollisionStreamsAtScaleNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..05c9e35
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h
@@ -0,0 +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 <stdint.h>
+
+// 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(&parameterizedTraits);
+ 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
new file mode 100644
index 0000000..2957495
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h
@@ -0,0 +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<SurfaceTraceParameters*>(this);
+ return *(static_cast<SurfaceTraceParametersNS::ParametersStruct*>(tmpThis));
+ }
+
+ SurfaceTraceParametersNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<SurfaceTraceParametersNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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
new file mode 100644
index 0000000..c4a1102
--- /dev/null
+++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h
@@ -0,0 +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<SurfaceTraceSetParameters*>(this);
+ return *(static_cast<SurfaceTraceSetParametersNS::ParametersStruct*>(tmpThis));
+ }
+
+ SurfaceTraceSetParametersNS::ParametersStruct& parameters(void)
+ {
+ return *(static_cast<SurfaceTraceSetParametersNS::ParametersStruct*>(this));
+ }
+
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const;
+ virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle);
+
+ void initDefaults(void);
+
+protected:
+
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void);
+ virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const;
+
+
+ virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const;
+
+private:
+
+ void buildTree(void);
+ void initDynamicArrays(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