// This code contains NVIDIA Confidential Information and is disclosed to you // under a form of NVIDIA software license agreement provided separately to you. // // Notice // NVIDIA Corporation and its licensors retain all intellectual property and // proprietary rights in and to this software and related documentation and // any modifications thereto. Any use, reproduction, disclosure, or // distribution of this software and related documentation without an express // license agreement from NVIDIA Corporation is strictly prohibited. // // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. // // Information and code furnished is believed to be accurate and reliable. // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such // information or for any infringement of patents or other rights of third parties that may // result from its use. No license is granted by implication or otherwise under any patent // or patent rights of NVIDIA Corporation. Details are subject to change without notice. // This code supersedes and replaces all information previously supplied. // NVIDIA Corporation products are not authorized for use as critical // components in life support devices or systems without express written approval of // NVIDIA Corporation. // // Copyright (c) 2008-2015 NVIDIA Corporation. All rights reserved. // This file was generated by NvParameterized/scripts/GenParameterized.pl #ifndef HEADER_BasicIOSAssetParam_h #define HEADER_BasicIOSAssetParam_h #include "NvParametersTypes.h" #ifndef NV_PARAMETERIZED_ONLY_LAYOUTS #include "nvparameterized/NvParameterized.h" #include "nvparameterized/NvParameterizedTraits.h" #include "NvParameters.h" #include "NvTraitsInternal.h" #endif namespace nvidia { namespace basicios { #if PX_VC #pragma warning(push) #pragma warning(disable: 4324) // structure was padded due to __declspec(align()) #endif namespace BasicIOSAssetParamNS { struct RandomF32_Type; struct GridDensityParams_Type; struct ParticleToGridCouplingParams_Type; struct GridToParticleCouplingParams_Type; struct ParticleToGridCouplingParams_Type { float accelTimeConstant; float decelTimeConstant; float thresholdMultiplier; }; struct GridDensityParams_Type { bool Enabled; const char* Resolution; float GridSize; uint32_t MaxCellCount; }; struct GridToParticleCouplingParams_Type { float accelTimeConstant; float decelTimeConstant; float thresholdMultiplier; }; struct RandomF32_Type { float center; float spread; const char* type; }; struct ParametersStruct { float restDensity; float particleRadius; uint32_t maxParticleCount; float maxInjectedParticleCount; uint32_t maxCollidingObjects; float sceneGravityScale; physx::PxVec3 externalAcceleration; RandomF32_Type particleMass; NvParameterized::DummyStringStruct collisionFilterDataName; NvParameterized::DummyStringStruct fieldSamplerFilterDataName; bool staticCollision; float restitutionForStaticShapes; bool dynamicCollision; float restitutionForDynamicShapes; float collisionDistanceMultiplier; float collisionThreshold; bool collisionWithConvex; bool collisionWithTriangleMesh; GridDensityParams_Type GridDensity; bool enableTemperatureBuffer; bool enableDensityBuffer; bool enableCouplingOverride; ParticleToGridCouplingParams_Type particleToGridCoupling; GridToParticleCouplingParams_Type gridToParticleCoupling; }; static const uint32_t checksum[] = { 0xd1ae20ca, 0xe79f585e, 0x9ab86d65, 0x9964607a, }; } // namespace BasicIOSAssetParamNS #ifndef NV_PARAMETERIZED_ONLY_LAYOUTS class BasicIOSAssetParam : public NvParameterized::NvParameters, public BasicIOSAssetParamNS::ParametersStruct { public: BasicIOSAssetParam(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); virtual ~BasicIOSAssetParam(); virtual void destroy(); static const char* staticClassName(void) { return("BasicIOSAssetParam"); } const char* className(void) const { return(staticClassName()); } static const uint32_t ClassVersion = ((uint32_t)1 << 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(BasicIOSAssetParamNS::checksum); return BasicIOSAssetParamNS::checksum; } static void freeParameterDefinitionTable(NvParameterized::Traits* traits); const uint32_t* checksum(uint32_t& bits) const { return staticChecksum(bits); } const BasicIOSAssetParamNS::ParametersStruct& parameters(void) const { BasicIOSAssetParam* tmpThis = const_cast(this); return *(static_cast(tmpThis)); } BasicIOSAssetParamNS::ParametersStruct& parameters(void) { return *(static_cast(this)); } virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); void initDefaults(void); protected: virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; private: void buildTree(void); void initDynamicArrays(void); void initStrings(void); void initReferences(void); void freeDynamicArrays(void); void freeStrings(void); void freeReferences(void); static bool mBuiltFlag; static NvParameterized::MutexType mBuiltFlagMutex; }; class BasicIOSAssetParamFactory : public NvParameterized::Factory { static const char* const vptr; public: virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) { BasicIOSAssetParam::freeParameterDefinitionTable(traits); } virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) { // placement new on this class using mParameterizedTraits void* newPtr = paramTraits->alloc(sizeof(BasicIOSAssetParam), BasicIOSAssetParam::ClassAlignment); if (!NvParameterized::IsAligned(newPtr, BasicIOSAssetParam::ClassAlignment)) { NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIOSAssetParam"); paramTraits->free(newPtr); return 0; } memset(newPtr, 0, sizeof(BasicIOSAssetParam)); // always initialize memory allocated to zero for default values return NV_PARAM_PLACEMENT_NEW(newPtr, BasicIOSAssetParam)(paramTraits); } virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) { if (!NvParameterized::IsAligned(bufObj, BasicIOSAssetParam::ClassAlignment) || !NvParameterized::IsAligned(bufStart, BasicIOSAssetParam::ClassAlignment)) { NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIOSAssetParam"); return 0; } // Init NvParameters-part // We used to call empty constructor of BasicIOSAssetParam here // but it may call default constructors of members and spoil the data NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); // Init vtable (everything else is already initialized) *(const char**)bufObj = vptr; return (BasicIOSAssetParam*)bufObj; } virtual const char* getClassName() { return (BasicIOSAssetParam::staticClassName()); } virtual uint32_t getVersion() { return (BasicIOSAssetParam::staticVersion()); } virtual uint32_t getAlignment() { return (BasicIOSAssetParam::ClassAlignment); } virtual const uint32_t* getChecksum(uint32_t& bits) { return (BasicIOSAssetParam::staticChecksum(bits)); } }; #endif // NV_PARAMETERIZED_ONLY_LAYOUTS } // namespace basicios } // namespace nvidia #if PX_VC #pragma warning(pop) #endif #endif