diff options
| author | Bryan Galdrikian <[email protected]> | 2018-01-26 21:55:41 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2018-01-26 21:55:41 -0800 |
| commit | ac961c33c61b487d982ca9cf9b04ba4ac754ecda (patch) | |
| tree | 2600d61bb009f065384d548eb16fdc2d12f0f227 /sdk/extensions/import/apexmodules/modules/destructible/include | |
| parent | Updated release notes (diff) | |
| download | blast-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')
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(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + +}; + + +} +} //nvidia::destructible + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h 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 |