aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/module/basicios/include
diff options
context:
space:
mode:
authorsschirm <[email protected]>2016-12-23 14:20:36 +0100
committersschirm <[email protected]>2016-12-23 14:56:17 +0100
commitef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch)
tree710426e8daa605551ce3f34b581897011101c30f /APEX_1.4/module/basicios/include
parentInitial commit: (diff)
downloadphysx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz
physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'APEX_1.4/module/basicios/include')
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosActorCPU.h99
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosActorGPU.h113
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosActorImpl.h342
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosAssetImpl.h333
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosCommon.h201
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosCommonSrc.h598
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosScene.h194
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosSceneCPU.h80
-rw-r--r--APEX_1.4/module/basicios/include/BasicIosSceneGPU.h93
-rw-r--r--APEX_1.4/module/basicios/include/ModuleBasicIosImpl.h139
-rw-r--r--APEX_1.4/module/basicios/include/ModuleEventDefs.h30
-rw-r--r--APEX_1.4/module/basicios/include/ModuleName.h17
-rw-r--r--APEX_1.4/module/basicios/include/ModulePerfScope.h18
-rw-r--r--APEX_1.4/module/basicios/include/autogen/BasicIOSAssetParam.h282
-rw-r--r--APEX_1.4/module/basicios/include/autogen/BasicIosDebugRenderParams.h232
-rw-r--r--APEX_1.4/module/basicios/include/autogen/BasicIosModuleParameters.h230
-rw-r--r--APEX_1.4/module/basicios/include/autogen/ModuleBasicIosRegistration.h120
17 files changed, 0 insertions, 3121 deletions
diff --git a/APEX_1.4/module/basicios/include/BasicIosActorCPU.h b/APEX_1.4/module/basicios/include/BasicIosActorCPU.h
deleted file mode 100644
index c2aae8a6..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosActorCPU.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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 __BASIC_IOS_ACTOR_CPU_H__
-#define __BASIC_IOS_ACTOR_CPU_H__
-
-#include "Apex.h"
-
-#if ENABLE_TEST
-#include "BasicIosTestActor.h"
-#endif
-#include "BasicIosActorImpl.h"
-#include "BasicIosAssetImpl.h"
-#include "InstancedObjectSimulationIntl.h"
-#include "BasicIosSceneCPU.h"
-#include "ApexActor.h"
-#include "ApexContext.h"
-#include "ApexFIFO.h"
-#include "ApexRWLockable.h"
-#include "PxTask.h"
-
-namespace nvidia
-{
-namespace apex
-{
-class RenderVolume;
-}
-namespace basicios
-{
-
-#if ENABLE_TEST
-#define BASIC_IOS_ACTOR BasicIosTestActor
-#else
-#define BASIC_IOS_ACTOR BasicIosActorImpl
-#endif
-
-class BasicIosActorCPU : public BASIC_IOS_ACTOR
-{
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- BasicIosActorCPU(ResourceList&, BasicIosAssetImpl&, BasicIosScene&, nvidia::apex::IofxAsset&);
- ~BasicIosActorCPU();
-
- virtual void submitTasks();
- virtual void setTaskDependencies();
- virtual void fetchResults();
-
-protected:
- /* Internal utility functions */
- void simulateParticles();
-
- static const uint32_t HISTOGRAM_BIN_COUNT = 1024;
- uint32_t computeHistogram(uint32_t dataCount, float dataMin, float dataMax, uint32_t& bound);
-
-private:
- /* particle data (output to the IOFX actors, and some state) */
-
- physx::Array<uint32_t> mNewIndices;
-
- class SimulateTask : public PxTask
- {
- public:
- SimulateTask(BasicIosActorCPU& actor) : mActor(actor) {}
-
- const char* getName() const
- {
- return "BasicIosActorCPU::SimulateTask";
- }
- void run()
- {
- mActor.simulateParticles();
- }
-
- protected:
- BasicIosActorCPU& mActor;
-
- private:
- SimulateTask& operator=(const SimulateTask&);
- };
- SimulateTask mSimulateTask;
-
- nvidia::apex::ApexCpuInplaceStorage mSimulationStorage;
-
- friend class BasicIosAssetImpl;
-};
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_ACTOR_CPU_H__
diff --git a/APEX_1.4/module/basicios/include/BasicIosActorGPU.h b/APEX_1.4/module/basicios/include/BasicIosActorGPU.h
deleted file mode 100644
index 866df869..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosActorGPU.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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 __BASIC_IOS_ACTOR_GPU_H__
-#define __BASIC_IOS_ACTOR_GPU_H__
-
-#include "Apex.h"
-
-#if ENABLE_TEST
-#include "BasicIosTestActor.h"
-#endif
-#include "BasicIosActorImpl.h"
-#include "BasicIosAssetImpl.h"
-#include "InstancedObjectSimulationIntl.h"
-#include "BasicIosSceneGPU.h"
-#include "ApexActor.h"
-#include "ApexContext.h"
-#include "ApexFIFO.h"
-#include "FieldSamplerQueryIntl.h"
-
-#include "PxGpuTask.h"
-
-namespace nvidia
-{
-namespace IOFX
-{
-class IofxActor;
-class RenderVolume;
-}
-
-namespace basicios
-{
-
-#if ENABLE_TEST
-#define BASIC_IOS_ACTOR BasicIosTestActor
-#else
-#define BASIC_IOS_ACTOR BasicIosActorImpl
-#endif
-
-class BasicIosActorGPU : public BASIC_IOS_ACTOR
-{
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- BasicIosActorGPU(ResourceList&, BasicIosAssetImpl&, BasicIosScene&, nvidia::apex::IofxAsset&, const ApexMirroredPlace::Enum defaultPlace = ApexMirroredPlace::GPU);
- ~BasicIosActorGPU();
-
- virtual void submitTasks();
- virtual void setTaskDependencies();
- virtual void fetchResults();
-
-protected:
- bool launch(CUstream stream, int kernelIndex);
-
- PxGpuCopyDescQueue mCopyQueue;
-
- ApexMirroredArray<uint32_t> mHoleScanSum;
- ApexMirroredArray<uint32_t> mMoveIndices;
-
- ApexMirroredArray<uint32_t> mTmpReduce;
- ApexMirroredArray<uint32_t> mTmpHistogram;
- ApexMirroredArray<uint32_t> mTmpScan;
- ApexMirroredArray<uint32_t> mTmpScan1;
-
- ApexMirroredArray<uint32_t> mTmpOutput;
- ApexMirroredArray<uint32_t> mTmpOutput1;
-
- class LaunchTask : public PxGpuTask
- {
- public:
- LaunchTask(BasicIosActorGPU& actor) : mActor(actor) {}
- const char* getName() const
- {
- return "BasicIosActorGPU::LaunchTask";
- }
- void run()
- {
- PX_ALWAYS_ASSERT();
- }
- bool launchInstance(CUstream stream, int kernelIndex)
- {
- return mActor.launch(stream, kernelIndex);
- }
- PxGpuTaskHint::Enum getTaskHint() const
- {
- return PxGpuTaskHint::Kernel;
- }
-
- protected:
- BasicIosActorGPU& mActor;
-
- private:
- LaunchTask& operator=(const LaunchTask&);
- };
-
- static PX_CUDA_CALLABLE PX_INLINE PxMat44 inverse(const PxMat44& in);
- static float distance(PxVec4 a, PxVec4 b);
-
- LaunchTask mLaunchTask;
-};
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_ACTOR_GPU_H__
diff --git a/APEX_1.4/module/basicios/include/BasicIosActorImpl.h b/APEX_1.4/module/basicios/include/BasicIosActorImpl.h
deleted file mode 100644
index 8a738ec4..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosActorImpl.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * 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 __BASIC_IOS_ACTOR_IMPL_H__
-#define __BASIC_IOS_ACTOR_IMPL_H__
-
-#include "Apex.h"
-
-#include "BasicIosActor.h"
-#include "IofxActor.h"
-#include "BasicIosAssetImpl.h"
-#include "InstancedObjectSimulationIntl.h"
-#include "BasicIosScene.h"
-#include "ApexActor.h"
-#include "ApexContext.h"
-#include "ApexFIFO.h"
-#include "BasicIosCommon.h"
-#include "BasicIosCommonSrc.h"
-#include "InplaceStorage.h"
-#include "ApexMirroredArray.h"
-#include "ApexRand.h"
-
-#include <PxFiltering.h>
-
-#define MAX_CONVEX_PLANES_COUNT 4096
-#define MAX_CONVEX_VERTS_COUNT 4096
-#define MAX_CONVEX_POLYGONS_DATA_SIZE 16384
-
-#define MAX_TRIMESH_VERTS_COUNT 4096
-#define MAX_TRIMESH_INDICES_COUNT 16384
-
-namespace nvidia
-{
-namespace apex
-{
- class FieldSamplerQueryIntl;
- class FieldSamplerCallbackIntl;
-}
-namespace iofx
-{
- class RenderVolume;
-}
-
-namespace basicios
-{
-
-/* Class for managing the interactions with each emitter */
-class BasicParticleInjector : public IosInjectorIntl, public ApexResourceInterface, public ApexResource
-{
-public:
- void setPreferredRenderVolume(nvidia::apex::RenderVolume* volume);
- float getLeastBenefitValue() const
- {
- return 0.0f;
- }
- bool isBacklogged() const
- {
- return false;
- }
-
- void createObjects(uint32_t count, const IosNewObject* createList);
-#if APEX_CUDA_SUPPORT
- void createObjects(ApexMirroredArray<const IosNewObject>& createArray);
-#endif
-
- void setLODWeights(float maxDistance, float distanceWeight, float speedWeight, float lifeWeight, float separationWeight, float bias);
-
- PxTaskID getCompletionTaskID() const;
-
- virtual void release();
- void destroy();
-
- // ApexResourceInterface methods
- void setListIndex(ResourceList& list, uint32_t index);
- uint32_t getListIndex() const
- {
- return m_listIndex;
- }
-
- virtual void setPhysXScene(PxScene*) {}
- virtual PxScene* getPhysXScene() const
- {
- return NULL;
- }
-
- void assignSimParticlesCount(uint32_t input)
- {
- mSimulatedParticlesCount = input;
- }
-
- virtual uint32_t getSimParticlesCount() const
- {
- return mSimulatedParticlesCount;
- }
-
- virtual uint32_t getActivePaticleCount() const
- {
- return mSimulatedParticlesCount;
- }
-
- virtual void setObjectScale(float objectScale);
-
-protected:
- BasicIosActorImpl* mIosActor;
- IofxManagerClientIntl* mIofxClient;
- nvidia::apex::RenderVolume* mVolume;
- physx::Array<uint16_t> mRandomActorClassIDs;
- uint32_t mLastRandomID;
- uint16_t mVolumeID;
-
- uint32_t mInjectorID;
- uint32_t mSimulatedParticlesCount;
-
- /* insertion buffer */
- ApexFIFO<IosNewObject> mInjectedParticles;
-
- QDSRand mRand;
-
- BasicParticleInjector(ResourceList& list, BasicIosActorImpl& actor, uint32_t injectorID);
- ~BasicParticleInjector();
-
- void init(nvidia::apex::IofxAsset* iofxAsset);
-
- friend class BasicIosActorImpl;
-};
-
-
-class BasicIosActorImpl : public InstancedObjectSimulationIntl,
- public BasicIosActor,
- public ApexResourceInterface,
- public ApexResource,
- public ApexRWLockable
-{
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- BasicIosActorImpl(ResourceList& list, BasicIosAssetImpl& asset, BasicIosScene& scene, nvidia::apex::IofxAsset& iofxAsset, bool isDataOnDevice);
- ~BasicIosActorImpl();
-
- // ApexInterface API
- void release();
- void destroy();
-
- // Actor API
- void setPhysXScene(PxScene* s);
- PxScene* getPhysXScene() const;
- virtual void putInScene(PxScene* scene);
-
- Asset* getOwner() const
- {
- return static_cast<Asset*>(mAsset);
- }
-
- // ApexContext
- void getLodRange(float& min, float& max, bool& intOnly) const;
- float getActiveLod() const;
- void forceLod(float lod);
- /**
- \brief Selectively enables/disables debug visualization of a specific APEX actor. Default value it true.
- */
- virtual void setEnableDebugVisualization(bool state)
- {
- ApexActor::setEnableDebugVisualization(state);
- }
-
- // ApexResourceInterface methods
- void setListIndex(ResourceList& list, uint32_t index)
- {
- m_listIndex = index;
- m_list = &list;
- }
- uint32_t getListIndex() const
- {
- return m_listIndex;
- }
-
- // IOSIntl
- float getObjectRadius() const
- {
- return mAsset->getParticleRadius();
- }
- float getObjectDensity() const
- {
- return mAsset->getRestDensity();
- }
-
- // BasicIosActor
- float getParticleRadius() const
- {
- READ_ZONE();
- return mAsset->getParticleRadius();
- }
- float getRestDensity() const
- {
- READ_ZONE();
- return mAsset->getRestDensity();
- }
- uint32_t getParticleCount() const
- {
- READ_ZONE();
- return mParticleCount;
- }
- PX_INLINE void setOnStartFSCallback(FieldSamplerCallbackIntl* callback)
- {
- if (mFieldSamplerQuery)
- {
- mFieldSamplerQuery->setOnStartCallback(callback);
- }
- }
- PX_INLINE void setOnFinishIOFXCallback(IofxManagerCallbackIntl* callback)
- {
- if (mIofxMgr)
- {
- mIofxMgr->setOnFinishCallback(callback);
- }
- }
-
- const PxVec3* getRecentPositions(uint32_t& count, uint32_t& stride) const;
-
- PxVec3 getGravity() const;
- void setGravity(PxVec3& gravity);
-
- void visualize();
- virtual void submitTasks() = 0;
- virtual void setTaskDependencies() = 0;
- virtual void fetchResults();
-
- IosInjectorIntl* allocateInjector(IofxAsset* iofxAsset);
- void releaseInjector(IosInjectorIntl&);
-
- virtual void setDensityOrigin(const PxVec3& v)
- {
- mDensityOrigin = v;
- }
-
-
-protected:
- //Member functions below have implemented in test actor
- virtual bool checkBenefit(uint32_t totalCount) {PX_UNUSED(totalCount); return true;};
- virtual bool checkHoles(uint32_t totalCount) {PX_UNUSED(totalCount); return true;};
- virtual bool checkInState(uint32_t totalCount) {PX_UNUSED(totalCount); return true;};
- virtual bool checkHistogram(uint32_t /*bound*/, uint32_t /*beg*/, uint32_t /*back*/) {return true;};
-
- virtual void removeFromScene();
-
- void injectNewParticles();
-
- void initStorageGroups(InplaceStorage& storage);
-
- void setTaskDependencies(PxTask* iosTask, bool isDataOnDevice);
-
- void FillCollisionData(CollisionData& baseData, PxShape* shape);
-
- BasicIosAssetImpl* mAsset;
- BasicIosScene* mBasicIosScene;
-
- IofxManagerIntl* mIofxMgr;
- IosBufferDescIntl mBufDesc;
-
- ResourceList mInjectorList;
-
- PxVec3 mGravityVec;
- PxVec3 mUp;
- float mGravity;
- float mTotalElapsedTime; //AM: People, methinks this will backfire eventually due to floating point precision loss!
-
- uint32_t mMaxParticleCount;
- uint32_t mMaxTotalParticleCount;
-
- uint32_t mParticleCount;
- uint32_t mParticleBudget;
-
- uint32_t mInjectedCount;
- float mInjectedBenefitSum;
- float mInjectedBenefitMin;
- float mInjectedBenefitMax;
-
- uint32_t mLastActiveCount;
- float mLastBenefitSum;
- float mLastBenefitMin;
- float mLastBenefitMax;
-
- ApexMirroredArray<float> mLifeSpan;
- ApexMirroredArray<float> mLifeTime;
- ApexMirroredArray<uint32_t> mInjector;
- ApexMirroredArray<float> mBenefit;
-
- ApexMirroredArray<PxPlane> mConvexPlanes;
- ApexMirroredArray<PxVec4> mConvexVerts;
- ApexMirroredArray<uint32_t> mConvexPolygonsData;
-
- ApexMirroredArray<PxVec4> mTrimeshVerts;
- ApexMirroredArray<uint32_t> mTrimeshIndices;
-
- ApexMirroredArray<uint32_t> mInjectorsCounters;
-
- ApexMirroredArray<float> mGridDensityGrid;
- ApexMirroredArray<float> mGridDensityGridLowPass;
-
- GridDensityParams mGridDensityParams;
- // Particle Density Origin
- PxVec3 mDensityOrigin;
- PxMat44 mDensityDebugMatInv;
-
- // If true we are
- bool mTrackGravityChanges;
-
- // Only for use by the IOS Asset, the actor is unaware of this
- bool mIsMesh;
-
- FieldSamplerQueryIntl* mFieldSamplerQuery;
- ApexMirroredArray<PxVec4> mField;
-
- PxFilterData mCollisionFilterData;
- Array<physx::PxOverlapHit> mOverlapHits;
-
- InplaceStorageGroup mSimulationStorageGroup;
- InplaceHandle<SimulationParams> mSimulationParamsHandle;
-
- PxTask* mInjectTask;
-
- FieldSamplerCallbackIntl* mOnStartCallback;
- IofxManagerCallbackIntl* mOnFinishCallback;
-
- friend class BasicIosInjectTask;
-
- friend class BasicIosAssetImpl;
- friend class BasicParticleInjector;
-};
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_ACTOR_IMPL_H__
diff --git a/APEX_1.4/module/basicios/include/BasicIosAssetImpl.h b/APEX_1.4/module/basicios/include/BasicIosAssetImpl.h
deleted file mode 100644
index 766858c1..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosAssetImpl.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * 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 BASIC_IOS_ASSET_IMPL_H
-#define BASIC_IOS_ASSET_IMPL_H
-
-#include "ApexUsingNamespace.h"
-#include "Apex.h"
-#include "IofxAsset.h"
-#include "BasicIosAsset.h"
-#include "InstancedObjectSimulationIntl.h"
-#include "ApexSDKHelpers.h"
-#include "ApexAssetAuthoring.h"
-#include "ApexString.h"
-#include "ResourceProviderIntl.h"
-#include "ApexAuthorableObject.h"
-#include "BasicIOSAssetParam.h"
-#include "ApexAssetTracker.h"
-#include "ApexRand.h"
-#include "ApexRWLockable.h"
-
-#include "ReadCheck.h"
-#include "ApexAuthorableObject.h"
-
-namespace nvidia
-{
-namespace IOFX
-{
-class IofxAsset;
-}
-
-namespace basicios
-{
-
-class ModuleBasicIosImpl;
-class BasicIosActorImpl;
-
-/**
-\brief Descriptor needed to create a BasicIOS Actor
-*/
-class BasicIosActorDesc : public ApexDesc
-{
-public:
- ///Radius of a particle (overrides authered value)
- float radius;
- ///Density of a particle (overrides authered value)
- float density;
-
- /**
- \brief constructor sets to default.
- */
- PX_INLINE BasicIosActorDesc() : ApexDesc()
- {
- init();
- }
-
- /**
- \brief sets members to default values.
- */
- PX_INLINE void setToDefault()
- {
- ApexDesc::setToDefault();
- init();
- }
-
- /**
- \brief checks if this is a valid descriptor.
- */
- PX_INLINE bool isValid() const
- {
- if (!ApexDesc::isValid())
- {
- return false;
- }
-
- return true;
- }
-
-private:
-
- PX_INLINE void init()
- {
- // authored values will be used where these default values remain
- radius = 0.0f;
- density = 0.0f;
- }
-};
-
-class BasicIosAssetImpl : public BasicIosAsset,
- public ApexResourceInterface,
- public ApexResource,
- public ApexRWLockable
-{
- friend class BasicIosAssetDummyAuthoring;
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- BasicIosAssetImpl(ModuleBasicIosImpl*, ResourceList&, const char*);
- BasicIosAssetImpl(ModuleBasicIosImpl* module, ResourceList&, NvParameterized::Interface*, const char*);
- ~BasicIosAssetImpl();
-
- // Asset
- void release();
- const char* getName(void) const
- {
- return mName.c_str();
- }
- AuthObjTypeID getObjTypeID() const
- {
- return mAssetTypeID;
- }
- const char* getObjTypeName() const
- {
- return getClassName();
- }
- // TODO: implement forceLoadAssets
- uint32_t forceLoadAssets();
-
- Actor* createIosActor(Scene& scene, IofxAsset* iofxAsset);
- void releaseIosActor(Actor&);
- bool getSupportsDensity() const;
-
- // Private API for this module only
- BasicIosActorImpl* getIosActorInScene(Scene& scene, bool mesh) const;
-
- // ApexResourceInterface methods
- void setListIndex(ResourceList& list, uint32_t index)
- {
- m_listIndex = index;
- m_list = &list;
- }
- uint32_t getListIndex() const
- {
- return m_listIndex;
- }
-
- float getParticleRadius() const
- {
- READ_ZONE();
- return mParams->particleRadius;
- }
- float getRestDensity() const
- {
- READ_ZONE();
- return mParams->restDensity;
- }
- float getMaxInjectedParticleCount() const
- {
- READ_ZONE();
- return mParams->maxInjectedParticleCount;
- }
- uint32_t getMaxParticleCount() const
- {
- READ_ZONE();
- return mParams->maxParticleCount;
- }
- float getSceneGravityScale() const
- {
- return mParams->sceneGravityScale;
- }
- PxVec3& getExternalAcceleration() const
- {
- return mParams->externalAcceleration;
- }
- float getParticleMass() const;
-
- const NvParameterized::Interface* getAssetNvParameterized() const
- {
- return mParams;
- }
- /**
- * \brief Releases the ApexAsset but returns the NvParameterized::Interface and *ownership* to the caller.
- */
- virtual NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void)
- {
- NvParameterized::Interface* ret = mParams;
- mParams = NULL;
- release();
- return ret;
- }
-
- NvParameterized::Interface* getDefaultActorDesc()
- {
- APEX_INVALID_OPERATION("Not yet implemented!");
- return NULL;
- }
-
- NvParameterized::Interface* getDefaultAssetPreviewDesc()
- {
- APEX_INVALID_OPERATION("Not yet implemented!");
- return NULL;
- }
-
- virtual Actor* createApexActor(const NvParameterized::Interface& /*parms*/, Scene& /*apexScene*/)
- {
- APEX_INVALID_OPERATION("Not yet implemented!");
- return NULL;
- }
-
- virtual AssetPreview* createApexAssetPreview(const NvParameterized::Interface& /*params*/, AssetPreviewScene* /*previewScene*/)
- {
- APEX_INVALID_OPERATION("Not yet implemented!");
- return NULL;
- }
-
- virtual bool isValidForActorCreation(const ::NvParameterized::Interface& /*parms*/, Scene& /*apexScene*/) const
- {
- return true; // TODO implement this method
- }
-
- virtual bool isDirty() const
- {
- return false;
- }
-
-protected:
- virtual void destroy();
-
- static AuthObjTypeID mAssetTypeID;
- static const char* getClassName()
- {
- return BASIC_IOS_AUTHORING_TYPE_NAME;
- }
-
- ResourceList mIosActorList;
-
- ModuleBasicIosImpl* mModule;
- ApexSimpleString mName;
-
- BasicIOSAssetParam* mParams;
-
- mutable QDSRand mSRand;
- mutable QDNormRand mNormRand;
-
- enum
- {
- UNIFORM,
- NORMAL
- } mMassDistribType;
-
- void processParams();
-
- friend class ModuleBasicIosImpl;
- friend class BasicIosActorImpl;
- friend class BasicIosActorCPU;
- friend class BasicIosActorGPU;
- template <class T_Module, class T_Asset, class T_AssetAuthoring> friend class nvidia::apex::ApexAuthorableObject;
- friend class BasicIosAuthorableObject;
-};
-
-#ifndef WITHOUT_APEX_AUTHORING
-class BasicIosAssetAuthoringImpl : public BasicIosAssetAuthoring, public ApexAssetAuthoring, public BasicIosAssetImpl
-{
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- BasicIosAssetAuthoringImpl(ModuleBasicIosImpl* module, ResourceList& list);
- BasicIosAssetAuthoringImpl(ModuleBasicIosImpl* module, ResourceList& list, const char* name);
- BasicIosAssetAuthoringImpl(ModuleBasicIosImpl* module, ResourceList& list, NvParameterized::Interface* params, const char* name);
-
- virtual void release();
-
- const char* getName(void) const
- {
- return BasicIosAssetImpl::getName();
- }
- const char* getObjTypeName() const
- {
- return BasicIosAssetImpl::getClassName();
- }
- virtual bool prepareForPlatform(nvidia::apex::PlatformTag)
- {
- APEX_INVALID_OPERATION("Not Implemented.");
- return false;
- }
- void setToolString(const char* toolName, const char* toolVersion, uint32_t toolChangelist)
- {
- ApexAssetAuthoring::setToolString(toolName, toolVersion, toolChangelist);
- }
-
- void setParticleRadius(float radius)
- {
- mParams->particleRadius = radius;
- }
- void setRestDensity(float density)
- {
- mParams->restDensity = density;
- }
- void setMaxInjectedParticleCount(float count)
- {
- mParams->maxInjectedParticleCount = count;
- }
- void setMaxParticleCount(uint32_t count)
- {
- mParams->maxParticleCount = count;
- }
- void setParticleMass(float mass)
- {
- mParams->particleMass.center = mass;
- }
-
- void setCollisionGroupName(const char* collisionGroupName);
- void setCollisionGroupMaskName(const char* collisionGroupMaskName);
-
- NvParameterized::Interface* getNvParameterized() const
- {
- return (NvParameterized::Interface*)getAssetNvParameterized();
- }
- /**
- * \brief Releases the ApexAsset but returns the NvParameterized::Interface and *ownership* to the caller.
- */
- virtual NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void)
- {
- NvParameterized::Interface* ret = mParams;
- mParams = NULL;
- release();
- return ret;
- }
-};
-#endif
-
-}
-} // namespace nvidia
-
-#endif // BASIC_IOS_ASSET_IMPL_H
diff --git a/APEX_1.4/module/basicios/include/BasicIosCommon.h b/APEX_1.4/module/basicios/include/BasicIosCommon.h
deleted file mode 100644
index 8b038518..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosCommon.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * 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 __BASIC_IOS_COMMON_H__
-#define __BASIC_IOS_COMMON_H__
-
-#include "PxMat44.h"
-#include "PxBounds3.h"
-#include "PxVec3.h"
-#include "InplaceTypes.h"
-
-namespace nvidia
-{
- namespace apex
- {
- class ApexCpuInplaceStorage;
- }
- namespace basicios
- {
-
-//struct InjectorParams
-#define INPLACE_TYPE_STRUCT_NAME InjectorParams
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(float, mLODMaxDistance) \
- INPLACE_TYPE_FIELD(float, mLODDistanceWeight) \
- INPLACE_TYPE_FIELD(float, mLODSpeedWeight) \
- INPLACE_TYPE_FIELD(float, mLODLifeWeight) \
- INPLACE_TYPE_FIELD(float, mLODBias) \
- INPLACE_TYPE_FIELD(uint32_t, mLocalIndex)
-#include INPLACE_TYPE_BUILD()
-
- typedef InplaceArray<InjectorParams> InjectorParamsArray;
-
-//struct CollisionData
-#define INPLACE_TYPE_STRUCT_NAME CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxVec3, bodyCMassPosition) \
- INPLACE_TYPE_FIELD(PxVec3, bodyLinearVelocity) \
- INPLACE_TYPE_FIELD(PxVec3, bodyAngluarVelocity) \
- INPLACE_TYPE_FIELD(float, materialRestitution)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionSphereData
-#define INPLACE_TYPE_STRUCT_NAME CollisionSphereData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxBounds3, aabb) \
- INPLACE_TYPE_FIELD(PxTransform, pose) \
- INPLACE_TYPE_FIELD(PxTransform, inversePose) \
- INPLACE_TYPE_FIELD(float, radius)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionCapsuleData
-#define INPLACE_TYPE_STRUCT_NAME CollisionCapsuleData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxBounds3, aabb) \
- INPLACE_TYPE_FIELD(PxTransform, pose) \
- INPLACE_TYPE_FIELD(PxTransform, inversePose) \
- INPLACE_TYPE_FIELD(float, halfHeight) \
- INPLACE_TYPE_FIELD(float, radius)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionBoxData
-#define INPLACE_TYPE_STRUCT_NAME CollisionBoxData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxBounds3, aabb) \
- INPLACE_TYPE_FIELD(PxTransform, pose) \
- INPLACE_TYPE_FIELD(PxTransform, inversePose) \
- INPLACE_TYPE_FIELD(PxVec3, halfSize)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionHalfSpaceData
-#define INPLACE_TYPE_STRUCT_NAME CollisionHalfSpaceData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxVec3, normal) \
- INPLACE_TYPE_FIELD(PxVec3, origin)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionConvexMeshData
-#define INPLACE_TYPE_STRUCT_NAME CollisionConvexMeshData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxBounds3, aabb) \
- INPLACE_TYPE_FIELD(PxTransform, pose) \
- INPLACE_TYPE_FIELD(PxTransform, inversePose) \
- INPLACE_TYPE_FIELD(uint32_t, numPolygons) \
- INPLACE_TYPE_FIELD(uint32_t, firstPlane) \
- INPLACE_TYPE_FIELD(uint32_t, firstVertex) \
- INPLACE_TYPE_FIELD(uint32_t, polygonsDataOffset)
-#include INPLACE_TYPE_BUILD()
-
-//struct CollisionTriMeshData
-#define INPLACE_TYPE_STRUCT_NAME CollisionTriMeshData
-#define INPLACE_TYPE_STRUCT_BASE CollisionData
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(PxBounds3, aabb) \
- INPLACE_TYPE_FIELD(PxTransform, pose) \
- INPLACE_TYPE_FIELD(PxTransform, inversePose) \
- INPLACE_TYPE_FIELD(uint32_t, numTriangles) \
- INPLACE_TYPE_FIELD(uint32_t, firstIndex) \
- INPLACE_TYPE_FIELD(uint32_t, firstVertex)
-#include INPLACE_TYPE_BUILD()
-
-//struct SimulationParams
-#define INPLACE_TYPE_STRUCT_NAME SimulationParams
-#define INPLACE_TYPE_STRUCT_FIELDS \
- INPLACE_TYPE_FIELD(float, collisionThreshold) \
- INPLACE_TYPE_FIELD(float, collisionDistance) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionBoxData>, boxes) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionSphereData>, spheres) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionCapsuleData>, capsules) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionHalfSpaceData>, halfSpaces) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionConvexMeshData>, convexMeshes) \
- INPLACE_TYPE_FIELD(InplaceArray<CollisionTriMeshData>, trimeshes) \
- INPLACE_TYPE_FIELD(PxPlane*, convexPlanes) \
- INPLACE_TYPE_FIELD(PxVec4*, convexVerts) \
- INPLACE_TYPE_FIELD(uint32_t*, convexPolygonsData) \
- INPLACE_TYPE_FIELD(PxVec4*, trimeshVerts) \
- INPLACE_TYPE_FIELD(uint32_t*, trimeshIndices)
-#define INPLACE_TYPE_STRUCT_LEAVE_OPEN 1
-#include INPLACE_TYPE_BUILD()
-
- APEX_CUDA_CALLABLE PX_INLINE SimulationParams() : convexPlanes(NULL), convexVerts(NULL), convexPolygonsData(NULL) {}
- };
-
-
- struct GridDensityParams
- {
- bool Enabled;
- float GridSize;
- uint32_t GridMaxCellCount;
- uint32_t GridResolution;
- PxVec3 DensityOrigin;
- GridDensityParams(): Enabled(false) {}
- };
-
- struct GridDensityFrustumParams
- {
- float nearDimX;
- float farDimX;
- float nearDimY;
- float farDimY;
- float dimZ;
- };
-
-#ifdef __CUDACC__
-
-#define SIM_FETCH_PLANE(plane, name, idx) { float4 f4 = tex1Dfetch(KERNEL_TEX_REF(name), idx); plane = PxPlane(f4.x, f4.y, f4.z, f4.w); }
-#define SIM_FETCH(name, idx) tex1Dfetch(KERNEL_TEX_REF(name), idx)
-#define SIM_FLOAT4 float4
-#define SIM_INT_AS_FLOAT(x) __int_as_float(x)
-#define SIM_INJECTOR_ARRAY const InjectorParamsArray&
-#define SIM_FETCH_INJECTOR(injectorArray, injParams, injector) injectorArray.fetchElem(INPLACE_STORAGE_ARGS_VAL, injParams, injector)
-
- __device__ PX_INLINE float splitFloat4(PxVec3& v3, const SIM_FLOAT4& f4)
- {
- v3.x = f4.x;
- v3.y = f4.y;
- v3.z = f4.z;
- return f4.w;
- }
- __device__ PX_INLINE SIM_FLOAT4 combineFloat4(const PxVec3& v3, float w)
- {
- return make_float4(v3.x, v3.y, v3.z, w);
- }
-#else
-
-#define SIM_FETCH_PLANE(plane, name, idx) plane = mem##name[idx];
-#define SIM_FETCH(name, idx) mem##name[idx]
-#define SIM_FLOAT4 PxVec4
-#define SIM_INT_AS_FLOAT(x) *(const float*)(&x)
-#define SIM_INJECTOR_ARRAY const InjectorParams*
-#define SIM_FETCH_INJECTOR(injectorArray, injParams, injector) injParams = injectorArray[injector];
-
- PX_INLINE float splitFloat4(PxVec3& v3, const SIM_FLOAT4& f4)
- {
- v3 = f4.getXYZ();
- return f4.w;
- }
- PX_INLINE SIM_FLOAT4 combineFloat4(const PxVec3& v3, float w)
- {
- return PxVec4(v3.x, v3.y, v3.z, w);
- }
-
-#endif
-
- }
-} // namespace nvidia
-
-#endif
diff --git a/APEX_1.4/module/basicios/include/BasicIosCommonSrc.h b/APEX_1.4/module/basicios/include/BasicIosCommonSrc.h
deleted file mode 100644
index 2d1458ce..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosCommonSrc.h
+++ /dev/null
@@ -1,598 +0,0 @@
-/*
- * 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 __BASIC_IOS_COMMON_SRC_H__
-#define __BASIC_IOS_COMMON_SRC_H__
-
-namespace nvidia
-{
- namespace basicios
- {
-
- PX_CUDA_CALLABLE PX_INLINE void updateCollisionVelocity(const CollisionData& data, const PxVec3& normal, const PxVec3& position, PxVec3& velocity)
- {
- PxVec3 bodyVelocity = data.bodyLinearVelocity + data.bodyAngluarVelocity.cross(position - data.bodyCMassPosition);
-
- velocity -= bodyVelocity;
- float normalVelocity = normal.dot(velocity);
- if (normalVelocity < 0.0f)
- {
- velocity -= normal * ((1.0f + data.materialRestitution) * normalVelocity);
- }
- velocity += bodyVelocity;
- }
-
-
- PX_CUDA_CALLABLE PX_INLINE void calculatePointSegmentSquaredDist(const PxVec3& a, const PxVec3& b, const PxVec3& point, float& distanceSquared, PxVec3& nearestPoint) // a, b - segment points
- {
- PxVec3 v, w, temp; //vectors
- float c1, c2, ratio; //constants
- v = a - b;
- w = point - b;
- float distSquared = 0;
-
- c1 = w.dot(v);
- if(c1 <= 0)
- {
- distSquared = (point.x - b.x) * (point.x - b.x) + (point.y - b.y) * (point.y - b.y) + (point.z - b.z) * (point.z - b.z);
- nearestPoint = b;
- }
- else
- {
- c2 = v.dot(v);
- if(c2 <= c1)
- {
- distSquared = (point.x - a.x) * (point.x - a.x) + (point.y - a.y) * (point.y - a.y) + (point.z - a.z) * (point.z - a.z);
- nearestPoint = a;
- }
- else
- {
- ratio = c1 / c2;
- temp = b + ratio * v;
- distSquared = (point.x - temp.x) * (point.x - temp.x) + (point.y - temp.y) * (point.y - temp.y) + (point.z - temp.z) * (point.z - temp.z);
- nearestPoint = temp;
- }
- }
-
- distanceSquared = distSquared;
- }
-
-#ifdef __CUDACC__
- __device__
-#endif
- PX_INLINE float checkTriangleCollision(const PxVec4* memTrimeshVerts, const uint32_t* memTrimeshIndices, const CollisionTriMeshData& data, float radius, PxVec3 localPosition, PxVec3 &normal)
- {
- float minDistSquared = PX_MAX_F32;
- PxVec3 localNormal(0);
-
- for(uint32_t j = 0 ; j < data.numTriangles; j++)
- {
- PxVec3 p0, p1, p2;
- uint32_t i0, i1, i2;
- i0 = SIM_FETCH(TrimeshIndices, data.firstIndex + 3 * j);
- i1 = SIM_FETCH(TrimeshIndices, data.firstIndex + 3 * j + 1);
- i2 = SIM_FETCH(TrimeshIndices, data.firstIndex + 3 * j + 2);
- splitFloat4(p0, SIM_FETCH(TrimeshVerts, data.firstVertex + i0));
- splitFloat4(p1, SIM_FETCH(TrimeshVerts, data.firstVertex + i1));
- splitFloat4(p2, SIM_FETCH(TrimeshVerts, data.firstVertex + i2));
-
- //localNormal = (p1 - p0).cross(p2 - p0);
- //if(radius > 0) localNormal += localPosition;
-
- PxBounds3 aabb( (p0.minimum(p1.minimum(p2))), (p0.maximum(p1.maximum(p2))) );
- aabb.fattenFast( radius );
- if( !aabb.contains(localPosition) ) continue;
-
- p0 = p0 - localPosition;
- p1 = p1 - localPosition;
- p2 = p2 - localPosition;
-
- PxVec3 a(p1 - p0);
- PxVec3 b(p2 - p0);
- PxVec3 n = a.cross(b);
- n.normalize();
-
- //check if point far away from the triangle's plane, then give up
- if(n.x * p0.x + n.y * p0.y + n.z * p0.z > radius) continue;
-
- //check if the nearest point is one of the triangle's vertices
- PxVec3 closestPoint; // closest point
-
- float det1p0p1, det2p0p2, det2p1p2, det0p0p1, det0p0p2, det1p1p2;
- //i = 0
- det1p0p1 = p0.dot(-(p1 - p0));
- det2p0p2 = p0.dot(-(p2 - p0));
- //i = 1
- det0p0p1 = p1.dot(p1 - p0);
- det2p1p2 = p1.dot(-(p2 - p1));
- //i = 2
- det0p0p2 = p2.dot(p2 - p0);
- det1p1p2 = p2.dot(p2 - p1);
-
- if(det1p0p1 <= 0 && det2p0p2 <= 0) closestPoint = p0;
- else if(det0p0p1 <= 0 && det2p1p2 <= 0) closestPoint = p1;
- else if(det0p0p2 <= 0 && det1p1p2 <= 0) closestPoint = p2;
- else
- {
- //check if the nearest point is internal point of one of the triangle's edges
- float det0p0p1p2, det1p0p1p2, det2p0p1p2;
- det0p0p1p2 = det0p0p1 * det1p1p2 + det2p1p2 * p2.dot(p1 - p0);
- det1p0p1p2 = det1p0p1 * det0p0p2 - det2p0p2 * p2.dot(p1 - p0);
- det2p0p1p2 = det2p0p2 * det0p0p1 - det1p0p1 * p1.dot(p2 - p0);
-
- if(det0p0p1p2 <= 0) closestPoint = (p1 * det1p1p2 + p2 * det2p1p2) / (det1p1p2 + det2p1p2);
- else if(det1p0p1p2 <= 0) closestPoint = (p0 * det0p0p2 + p2 * det2p0p2) / (det0p0p2 + det2p0p2);
- else if(det2p0p1p2 <= 0) closestPoint = (p0 * det0p0p1 + p1 * det1p0p1) / (det0p0p1 + det1p0p1);
- //point is inside the triangle
- else closestPoint = (p0 * det0p0p1p2 + p1 * det1p0p1p2 + p2 * det2p0p1p2) / (det0p0p1p2 + det1p0p1p2 + det2p0p1p2);
- }
-
- float distSquared = closestPoint.x * closestPoint.x + closestPoint.y * closestPoint.y + closestPoint.z * closestPoint.z;
- if(distSquared > radius * radius)
- {
- continue;
- }
-
- if(distSquared < minDistSquared)
- {
- minDistSquared = distSquared;
- localNormal = n;
- }
- }
- normal = localNormal;
-
- return minDistSquared;
- }
-
- INPLACE_TEMPL_ARGS_DEF
-#ifdef __CUDACC__
- __device__
-#endif
- PX_INLINE uint32_t handleCollisions(const SimulationParams* params, INPLACE_STORAGE_ARGS_DEF, PxVec3& position, PxVec3& velocity, PxVec3& normal)
- {
- const PxPlane* memConvexPlanes = params->convexPlanes;
- const PxVec4* memConvexVerts = params->convexVerts;
- const uint32_t* memConvexPolygonsData = params->convexPolygonsData;
-
- // Algorithms are similar to CPU version
- const PxVec4* memTrimeshVerts = params->trimeshVerts;
- const uint32_t* memTrimeshIndices = params->trimeshIndices;
-
- float collisionRadius = params->collisionDistance + params->collisionThreshold;
-
- uint32_t numTriMeshes = params->trimeshes.getSize();
- for (uint32_t i = 0; i < numTriMeshes; ++i)
- {
- CollisionTriMeshData data;
- params->trimeshes.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- if (!data.aabb.contains(position)) //check coarse bounds
- {
- continue;
- }
-
- PxVec3 localPosition = data.inversePose.transform(position);
-
- PxVec3 localNormal;
- float minDistSquared = checkTriangleCollision(memTrimeshVerts, memTrimeshIndices, data, collisionRadius, localPosition, localNormal);
- if (minDistSquared == PX_MAX_F32)
- {
- continue;
- }
-
- float penDepth = params->collisionDistance - PxSqrt(minDistSquared);
-
- if( penDepth > 0 )
- {
- localPosition += localNormal * penDepth;
- normal = data.pose.rotate(localNormal);
- position = data.pose.transform(localPosition);
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- uint32_t numConvexMeshes = params->convexMeshes.getSize();
- for (uint32_t i = 0; i < numConvexMeshes; ++i)
- {
- CollisionConvexMeshData data;
- params->convexMeshes.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- if (!data.aabb.contains(position)) //check coarse bounds
- {
- continue;
- }
-
- PxVec3 localPosition = data.inversePose.transform(position);
-
- float penDepth = UINT32_MAX;
- PxVec3 localNormal(0);
-
- bool insideConvex = true;
- bool insidePolygon = true;
- float distSquaredMin = UINT32_MAX;
- PxVec3 nearestPointMin;
-
- uint32_t polygonsDataOffset = data.polygonsDataOffset;
- for (uint32_t polyId = 0; polyId < data.numPolygons; polyId++) // for each polygon
- {
- PxPlane plane;
- SIM_FETCH_PLANE(plane, ConvexPlanes, data.firstPlane + polyId);
-
- uint32_t vertCount = SIM_FETCH(ConvexPolygonsData, polygonsDataOffset);
-
- float dist = (localPosition.dot(plane.n) + plane.d);
- if (dist > 0) //outside convex
- {
- insideConvex = false;
-
- if (dist > collisionRadius)
- {
- insidePolygon = false;
- distSquaredMin = dist * dist;
- break;
- }
-
- insidePolygon = true;
- PxVec3 polygonNormal = plane.n;
-
- uint32_t begVertId = SIM_FETCH(ConvexPolygonsData, polygonsDataOffset + vertCount);
- PxVec3 begVert; splitFloat4(begVert, SIM_FETCH(ConvexVerts, data.firstVertex + begVertId));
- for (uint32_t vertId = 1; vertId <= vertCount; ++vertId) //for each vertex
- {
- uint32_t endVertId = SIM_FETCH(ConvexPolygonsData, polygonsDataOffset + vertId);
- PxVec3 endVert; splitFloat4(endVert, SIM_FETCH(ConvexVerts, data.firstVertex + endVertId));
-
- PxVec3 segment = endVert - begVert;
- PxVec3 segmentNormal = polygonNormal.cross(segment);
- float sign = segmentNormal.dot(localPosition - begVert);
- if (sign < 0)
- {
- insidePolygon = false;
-
- float distSquared;
- PxVec3 nearestPoint;
- calculatePointSegmentSquaredDist(begVert, endVert, localPosition, distSquared, nearestPoint);
- if (distSquared < distSquaredMin)
- {
- distSquaredMin = distSquared;
- nearestPointMin = nearestPoint;
- }
- }
-
- begVert = endVert;
- }
- if (insidePolygon)
- {
- penDepth = params->collisionDistance - dist;
- localNormal = polygonNormal;
- break;
- }
- }
-
- if (insideConvex)
- {
- float penDepthPlane = params->collisionDistance - dist; //dist is negative inside
- if (penDepthPlane < penDepth) //inside convex
- {
- penDepth = penDepthPlane;
- localNormal = plane.n;
- }
- }
- polygonsDataOffset += (vertCount + 1);
- }
-
- if (!insideConvex && !insidePolygon)
- {
- if (distSquaredMin > collisionRadius * collisionRadius)
- {
- continue; //no intersection, too far away
- }
- float dist = PxSqrt(distSquaredMin);
-
- localNormal = localPosition - nearestPointMin;
- localNormal *= (1 / dist); //normalize
-
- penDepth = params->collisionDistance - dist;
- }
-
- if (penDepth > 0)
- {
- localPosition += localNormal * penDepth;
- normal = data.pose.rotate(localNormal);
- position = data.pose.transform(localPosition);
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- uint32_t numBoxes = params->boxes.getSize();
- for (uint32_t i = 0; i < numBoxes; ++i)
- {
- CollisionBoxData data;
- params->boxes.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- if (!data.aabb.contains(position))
- {
- continue;
- }
-
- PxVec3 localPosition = data.inversePose.transform(position);
-
-
- PxVec3 closestPoint = PxVec3(PxClamp(localPosition.x, -data.halfSize.x, data.halfSize.x), PxClamp(localPosition.y, -data.halfSize.y, data.halfSize.y), PxClamp(localPosition.z, -data.halfSize.z, data.halfSize.z));
- PxVec3 v = localPosition - closestPoint;
- float vMagnitudeSquared = v.magnitudeSquared();
- if(vMagnitudeSquared > collisionRadius * collisionRadius) continue; //no intersection
-
- PxBounds3 bounds = PxBounds3(-data.halfSize, data.halfSize);
- float penDepth;
-
- PxVec3 localNormal(0);
- if(vMagnitudeSquared > 0)
- {
- float vMagnitude = PxSqrt(vMagnitudeSquared);
- localNormal = v * (1 / vMagnitude);
-
- penDepth = params->collisionDistance - vMagnitude;
- }
- else
- {
- PxVec3 penDepth3D = PxVec3(
- data.halfSize.x - PxAbs(localPosition.x),
- data.halfSize.y - PxAbs(localPosition.y),
- data.halfSize.z - PxAbs(localPosition.z)
- );
- float penDepth3Dmin = penDepth3D.minElement();
-
- if (penDepth3Dmin == penDepth3D.x)
- {
- localNormal.x = localPosition.x < 0 ? -1.0f : 1.0f;
- }
- else if (penDepth3Dmin == penDepth3D.y)
- {
- localNormal.y = localPosition.y < 0 ? -1.0f : 1.0f;
- }
- else if (penDepth3Dmin == penDepth3D.z)
- {
- localNormal.z = localPosition.z < 0 ? -1.0f : 1.0f;
- }
-
- penDepth = params->collisionDistance + penDepth3Dmin;
- }
-
- normal = data.pose.rotate(localNormal);
-
- if (penDepth > 0)
- {
- localPosition += localNormal * penDepth;
- position = data.pose.transform(localPosition);
-
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- uint32_t numCapsules = params->capsules.getSize();
- for (uint32_t i = 0; i < numCapsules; ++i)
- {
- CollisionCapsuleData data;
- params->capsules.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- if (!data.aabb.contains(position))
- {
- continue;
- }
-
- PxVec3 localPosition = data.inversePose.transform(position);
-
- // Capsule is Minkowski sum of sphere with segment
- const float closestX = PxClamp(localPosition.x, -data.halfHeight, data.halfHeight);
- PxVec3 localNormal(localPosition.x - closestX, localPosition.y, localPosition.z);
-
- float distance = localNormal.magnitude();
- float penDepth = (data.radius - distance);
- // No intersection?
- if (-penDepth > params->collisionThreshold)
- {
- continue;
- }
- if (distance > 0) // avoid division by zero
- {
- localNormal /= distance;
- }
- normal = data.pose.rotate(localNormal);
-
- if (penDepth > 0)
- {
- localPosition = data.radius * localNormal;
- localPosition.x += closestX;
-
- position = data.pose.transform(localPosition);
-
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- uint32_t numSpheres = params->spheres.getSize();
- for (uint32_t i = 0; i < numSpheres; ++i)
- {
- CollisionSphereData data;
- params->spheres.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- if (!data.aabb.contains(position))
- {
- continue;
- }
-
- PxVec3 localNormal = data.inversePose.transform(position);
- float distance = localNormal.magnitude();
-
- float penDepth = (data.radius - distance);
- // No intersection?
- if (-penDepth > params->collisionThreshold)
- {
- continue;
- }
- localNormal /= distance;
- normal = data.pose.rotate(localNormal);
-
- if (penDepth > 0)
- {
- position = data.pose.transform(data.radius * localNormal);
-
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- uint32_t numHalfSpaces = params->halfSpaces.getSize();
- for (uint32_t i = 0; i < numHalfSpaces; ++i)
- {
- CollisionHalfSpaceData data;
- params->halfSpaces.fetchElem(INPLACE_STORAGE_ARGS_VAL, data, i);
-
- float penDepth = (data.origin - position).dot(data.normal);
-
- // No intersection?
- if (-penDepth > params->collisionThreshold)
- {
- continue;
- }
-
- normal = data.normal;
- if (penDepth > 0)
- {
- position += penDepth * data.normal;
-
- updateCollisionVelocity(data, normal, position, velocity);
- }
- return 1;
- }
-
- return 0;
- }
-
-
-
-#ifdef __CUDACC__
- __device__
-#endif
- PX_INLINE float calcParticleBenefit(
- const InjectorParams& inj, const PxVec3& eyePos,
- const PxVec3& pos, const PxVec3& vel, float life)
- {
- float benefit = inj.mLODBias;
- //distance term
- float distance = (eyePos - pos).magnitude();
- benefit += inj.mLODDistanceWeight * (1.0f - PxMin(1.0f, distance / inj.mLODMaxDistance));
- //velocity term, TODO: clamp velocity
- float velMag = vel.magnitude();
- benefit += inj.mLODSpeedWeight * velMag;
- //life term
- benefit += inj.mLODLifeWeight * life;
-
- return PxClamp(benefit, 0.0f, 1.0f);
- }
-
- INPLACE_TEMPL_VA_ARGS_DEF(typename FieldAccessor)
-#ifdef __CUDACC__
- __device__
-#endif
- PX_INLINE float simulateParticle(
- const SimulationParams* params, INPLACE_STORAGE_ARGS_DEF, SIM_INJECTOR_ARRAY injectorArray,
- float deltaTime, PxVec3 gravity, PxVec3 eyePos,
- bool isNewParticle, unsigned int srcIdx, unsigned int dstIdx,
- SIM_FLOAT4* memPositionMass, SIM_FLOAT4* memVelocityLife, IofxActorIDIntl* memIofxActorIDs,
- float* memLifeSpan, float* memLifeTime, unsigned int* memInjector, SIM_FLOAT4* memCollisionNormalFlags, uint32_t* memUserData,
- FieldAccessor& fieldAccessor, unsigned int &injIndex
- )
- {
- //read
- PxVec3 position;
- PxVec3 velocity;
- float mass = splitFloat4(position, SIM_FETCH(PositionMass, srcIdx));
- splitFloat4(velocity, SIM_FETCH(VelocityLife, srcIdx));
- float lifeSpan = SIM_FETCH(LifeSpan, srcIdx);
- unsigned int injector = SIM_FETCH(Injector, srcIdx);
- IofxActorIDIntl iofxActorID = IofxActorIDIntl(SIM_FETCH(IofxActorIDs, srcIdx));
-
- PxVec3 collisionNormal(0.0f);
- uint32_t collisionFlags = 0;
-
- float lifeTime = lifeSpan;
- if (!isNewParticle)
- {
- using namespace nvidia::apex;
-
- lifeTime = SIM_FETCH(LifeTime, srcIdx);
-
- //collide using the old state
- collisionFlags = handleCollisions INPLACE_TEMPL_ARGS_VAL (params, INPLACE_STORAGE_ARGS_VAL, position, velocity, collisionNormal);
-
- //advance to a new state
- PxVec3 velocityDelta = deltaTime * gravity;
- fieldAccessor(srcIdx, velocityDelta);
-
- velocity += velocityDelta;
- position += deltaTime * velocity;
-
- lifeTime = PxMax(lifeTime - deltaTime, 0.0f);
- }
-
- InjectorParams injParams;
- SIM_FETCH_INJECTOR(injectorArray, injParams, injector);
- injIndex = injParams.mLocalIndex;
- // injParams.mLODBias == FLT_MAX if injector was released!
- // and IOFX returns IofxActorIDIntl::NO_VOLUME for homeless/dead particles
- bool validActorID = (injParams.mLODBias < FLT_MAX)
- && (isNewParticle || (iofxActorID.getVolumeID() != IofxActorIDIntl::NO_VOLUME))
- && position.isFinite() && velocity.isFinite();
- if (!validActorID)
- {
- iofxActorID.setActorClassID(IofxActorIDIntl::IPX_ACTOR);
- injIndex = UINT32_MAX;
- }
-
- //write
- memLifeTime[dstIdx] = lifeTime;
-
- if (!isNewParticle || dstIdx != srcIdx)
- {
- memPositionMass[dstIdx] = combineFloat4(position, mass);
- memVelocityLife[dstIdx] = combineFloat4(velocity, lifeTime / lifeSpan);
- }
- if (!validActorID || dstIdx != srcIdx)
- {
- memIofxActorIDs[dstIdx] = iofxActorID;
- }
- if (dstIdx != srcIdx)
- {
- memLifeSpan[dstIdx] = lifeSpan;
- memInjector[dstIdx] = injector;
-
- memUserData[dstIdx] = SIM_FETCH(UserData, srcIdx);
- }
- memCollisionNormalFlags[dstIdx] = combineFloat4(collisionNormal, SIM_INT_AS_FLOAT(collisionFlags));
-
- float benefit = -FLT_MAX;
- if (validActorID && lifeTime > 0.0f)
- {
- benefit = calcParticleBenefit(injParams, eyePos, position, velocity, lifeTime / lifeSpan);
- }
- return benefit;
- }
- }
-
-} // namespace nvidia
-
-#endif
diff --git a/APEX_1.4/module/basicios/include/BasicIosScene.h b/APEX_1.4/module/basicios/include/BasicIosScene.h
deleted file mode 100644
index 32691b3f..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosScene.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * 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 __BASIC_IOS_SCENE_H__
-#define __BASIC_IOS_SCENE_H__
-
-#include "Apex.h"
-#include "ModuleBasicIos.h"
-#include "ApexSDKIntl.h"
-#include "ModuleIntl.h"
-#include "ModuleBasicIosImpl.h"
-#include "ApexSharedUtils.h"
-#include "ApexSDKHelpers.h"
-#include "ApexContext.h"
-#include "ApexActor.h"
-#include "ModulePerfScope.h"
-
-#include "PsTime.h"
-
-#include "DebugRenderParams.h"
-#include "BasicIosDebugRenderParams.h"
-
-#include "BasicIosCommon.h"
-#include "BasicIosCommonSrc.h"
-
-#include "FieldSamplerQueryIntl.h"
-
-#if APEX_CUDA_SUPPORT
-#include "../cuda/include/common.h"
-
-#include "ApexCudaWrapper.h"
-#include "CudaModuleScene.h"
-
-#define SCENE_CUDA_OBJ(scene, name) static_cast<BasicIosSceneGPU&>(scene).APEX_CUDA_OBJ_NAME(name)
-
-#endif
-
-namespace nvidia
-{
-namespace apex
-{
-class RenderDebugInterface;
-class FieldSamplerManagerIntl;
-}
-namespace basicios
-{
-
-class BasicIosInjectorStorage
-{
-public:
- virtual bool growInjectorStorage(uint32_t newSize) = 0;
-};
-class BasicIosInjectorAllocator
-{
-public:
- BasicIosInjectorAllocator(BasicIosInjectorStorage* storage) : mStorage(storage)
- {
- mFreeInjectorListStart = NULL_INJECTOR_INDEX;
- mReleasedInjectorListStart = NULL_INJECTOR_INDEX;
- }
-
- uint32_t allocateInjectorID();
- void releaseInjectorID(uint32_t);
- void flushReleased();
-
- static const uint32_t NULL_INJECTOR_INDEX = 0xFFFFFFFFu;
- static const uint32_t USED_INJECTOR_INDEX = 0xFFFFFFFEu;
-
-private:
- BasicIosInjectorStorage* mStorage;
-
- physx::Array<uint32_t> mInjectorList;
- uint32_t mFreeInjectorListStart;
- uint32_t mReleasedInjectorListStart;
-};
-
-
-class BasicIosScene : public ModuleSceneIntl, public ApexContext, public ApexResourceInterface, public ApexResource, protected BasicIosInjectorStorage
-{
-public:
- BasicIosScene(ModuleBasicIosImpl& module, SceneIntl& scene, RenderDebugInterface* renderDebug, ResourceList& list);
- ~BasicIosScene();
-
- /* ModuleSceneIntl */
- void release()
- {
- mModule->releaseModuleSceneIntl(*this);
- }
-
- PxScene* getModulePhysXScene() const
- {
- return mPhysXScene;
- }
- void setModulePhysXScene(PxScene*);
- PxScene* mPhysXScene;
-
- void visualize();
-
- virtual Module* getModule()
- {
- return mModule;
- }
-
- virtual SceneStats* getStats()
- {
- return 0;
- }
-
- bool lockRenderResources()
- {
- renderLockAllActors(); // Lock options not implemented yet
- return true;
- }
-
- bool unlockRenderResources()
- {
- renderUnLockAllActors(); // Lock options not implemented yet
- return true;
- }
-
- /* ApexResourceInterface */
- uint32_t getListIndex() const
- {
- return m_listIndex;
- }
- void setListIndex(ResourceList& list, uint32_t index)
- {
- m_listIndex = index;
- m_list = &list;
- }
-
- virtual BasicIosActorImpl* createIosActor(ResourceList& list, BasicIosAssetImpl& asset, nvidia::apex::IofxAsset& iofxAsset) = 0;
-
- virtual void submitTasks(float elapsedTime, float substepSize, uint32_t numSubSteps);
- virtual void setTaskDependencies();
- virtual void fetchResults();
-
- FieldSamplerManagerIntl* getInternalFieldSamplerManager();
-
- SceneIntl& getApexScene() const
- {
- return *mApexScene;
- }
-
- PX_INLINE BasicIosInjectorAllocator& getInjectorAllocator()
- {
- return mInjectorAllocator;
- }
- virtual void fetchInjectorParams(uint32_t injectorID, InjectorParams& injParams) = 0;
- virtual void updateInjectorParams(uint32_t injectorID, const InjectorParams& injParams) = 0;
-
-protected:
- virtual void onSimulationStart() {}
- virtual void onSimulationFinish()
- {
- mInjectorAllocator.flushReleased();
- }
-
-
- ModuleBasicIosImpl* mModule;
- SceneIntl* mApexScene;
-
- void destroy();
-
- float computeAABBDistanceSquared(const PxBounds3& aabb);
-
- RenderDebugInterface* mDebugRender;
- float mSumBenefit;
-
- DebugRenderParams* mDebugRenderParams;
- BasicIosDebugRenderParams* mBasicIosDebugRenderParams;
-
- FieldSamplerManagerIntl* mFieldSamplerManager;
-
- BasicIosInjectorAllocator mInjectorAllocator;
-
- friend class BasicIosActorImpl;
- friend class BasicIosAssetImpl;
- friend class ModuleBasicIosImpl;
-};
-
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_SCENE_H__
diff --git a/APEX_1.4/module/basicios/include/BasicIosSceneCPU.h b/APEX_1.4/module/basicios/include/BasicIosSceneCPU.h
deleted file mode 100644
index d0c5913f..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosSceneCPU.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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 __BASIC_IOS_SCENE_CPU_H__
-#define __BASIC_IOS_SCENE_CPU_H__
-
-#if ENABLE_TEST
-#include "BasicIosTestScene.h"
-#endif
-#include "BasicIosScene.h"
-
-namespace nvidia
-{
-namespace basicios
-{
-
-#if ENABLE_TEST
-#define BASIC_IOS_SCENE BasicIosTestScene
-#else
-#define BASIC_IOS_SCENE BasicIosScene
-#endif
-
-class BasicIosSceneCPU : public BASIC_IOS_SCENE
-{
- class TimerCallback : public FieldSamplerCallbackIntl, public IofxManagerCallbackIntl, public UserAllocated
- {
- shdfnd::Time mTimer;
- float mMinTime, mMaxTime;
- public:
- TimerCallback() {}
- void operator()(void* stream = NULL);
- void reset();
- float getElapsedTime() const;
- };
-public:
- BasicIosSceneCPU(ModuleBasicIosImpl& module, SceneIntl& scene, RenderDebugInterface* debugRender, ResourceList& list);
- ~BasicIosSceneCPU();
-
- virtual BasicIosActorImpl* createIosActor(ResourceList& list, BasicIosAssetImpl& asset, nvidia::apex::IofxAsset& iofxAsset);
-
- virtual void fetchInjectorParams(uint32_t injectorID, InjectorParams& injParams)
- {
- PX_ASSERT(injectorID < mInjectorParamsArray.size());
- injParams = mInjectorParamsArray[ injectorID ];
- }
- virtual void updateInjectorParams(uint32_t injectorID, const InjectorParams& injParams)
- {
- PX_ASSERT(injectorID < mInjectorParamsArray.size());
- mInjectorParamsArray[ injectorID ] = injParams;
- }
-
- void fetchResults();
-
-protected:
- virtual void setCallbacks(BasicIosActorCPU* actor);
- virtual bool growInjectorStorage(uint32_t newSize)
- {
- mInjectorParamsArray.resize(newSize);
- return true;
- }
-
-private:
- physx::Array<InjectorParams> mInjectorParamsArray;
- TimerCallback mTimerCallback;
-
- friend class BasicIosActorCPU;
-};
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_SCENE_H__
diff --git a/APEX_1.4/module/basicios/include/BasicIosSceneGPU.h b/APEX_1.4/module/basicios/include/BasicIosSceneGPU.h
deleted file mode 100644
index 26fa5f51..00000000
--- a/APEX_1.4/module/basicios/include/BasicIosSceneGPU.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * 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 __BASIC_IOS_SCENE_GPU_H__
-#define __BASIC_IOS_SCENE_GPU_H__
-
-#if ENABLE_TEST
-#include "BasicIosTestScene.h"
-#endif
-#include "BasicIosScene.h"
-
-#include "../cuda/include/common.h"
-
-#include "ApexCudaWrapper.h"
-#include "CudaModuleScene.h"
-
-#define SCENE_CUDA_OBJ(scene, name) static_cast<BasicIosSceneGPU&>(scene).APEX_CUDA_OBJ_NAME(name)
-
-namespace nvidia
-{
-namespace basicios
-{
-
-#if ENABLE_TEST
-#define BASIC_IOS_SCENE BasicIosTestScene
-#else
-#define BASIC_IOS_SCENE BasicIosScene
-#endif
-
-class BasicIosSceneGPU : public BASIC_IOS_SCENE, public CudaModuleScene
-{
- class EventCallback : public FieldSamplerCallbackIntl, public IofxManagerCallbackIntl, public UserAllocated
- {
- void* mEvent;
- public:
- EventCallback();
- void init();
- virtual ~EventCallback();
- void operator()(void* stream);
- PX_INLINE void* getEvent()
- {
- return mEvent;
- }
- bool mIsCalled;
- };
-public:
- BasicIosSceneGPU(ModuleBasicIosImpl& module, SceneIntl& scene, RenderDebugInterface* debugRender, ResourceList& list);
- ~BasicIosSceneGPU();
-
- virtual BasicIosActorImpl* createIosActor(ResourceList& list, BasicIosAssetImpl& asset, nvidia::apex::IofxAsset& iofxAsset);
-
- virtual void fetchInjectorParams(uint32_t injectorID, InjectorParams& injParams);
- virtual void updateInjectorParams(uint32_t injectorID, const InjectorParams& injParams);
-
- virtual void fetchResults();
-
- void* getHeadCudaObj()
- {
- return CudaModuleScene::getHeadCudaObj();
- }
-
-//CUDA module objects
-#include "../cuda/include/moduleList.h"
-
-protected:
- virtual void setCallbacks(BasicIosActorGPU* actor);
- virtual bool growInjectorStorage(uint32_t newSize);
-
- void onSimulationStart();
-
-private:
- ApexCudaConstMemGroup mInjectorConstMemGroup;
- InplaceHandle<InjectorParamsArray> mInjectorParamsArrayHandle;
-
- EventCallback mOnSimulationStart;
- physx::Array<EventCallback*> mOnStartCallbacks;
- physx::Array<EventCallback*> mOnFinishCallbacks;
-
- friend class BasicIosActorGPU;
-};
-
-}
-} // namespace nvidia
-
-#endif // __BASIC_IOS_SCENE_H__
diff --git a/APEX_1.4/module/basicios/include/ModuleBasicIosImpl.h b/APEX_1.4/module/basicios/include/ModuleBasicIosImpl.h
deleted file mode 100644
index c0543e77..00000000
--- a/APEX_1.4/module/basicios/include/ModuleBasicIosImpl.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * 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_BASIC_IOS_IMPL_H__
-#define __MODULE_BASIC_IOS_IMPL_H__
-
-#include "Apex.h"
-#include "ModuleBasicIos.h"
-#include "ApexSDKIntl.h"
-#include "ModuleBase.h"
-#include "ModuleIntl.h"
-#include "ResourceProviderIntl.h"
-#include "ApexSharedUtils.h"
-#include "ApexSDKHelpers.h"
-#include "ModulePerfScope.h"
-#include "ApexAuthorableObject.h"
-#include "BasicIosAssetImpl.h"
-#include "ModuleBasicIosRegistration.h"
-#include "ApexRWLockable.h"
-
-namespace nvidia
-{
-namespace apex
-{
-class ModuleIofxIntl;
-class ModuleFieldSamplerIntl;
-}
-namespace basicios
-{
-
-class BasicIosScene;
-
-/**
-\brief ModuleBase descriptor for BasicIOS module
-*/
-class ModuleBasicIosDesc : public ApexDesc
-{
-public:
-
- /**
- \brief constructor sets to default.
- */
- PX_INLINE ModuleBasicIosDesc() : ApexDesc()
- {
- init();
- }
-
- /**
- \brief sets members to default values.
- */
- PX_INLINE void setToDefault()
- {
- ApexDesc::setToDefault();
- init();
- }
-
- /**
- \brief checks if this is a valid descriptor.
- */
- PX_INLINE bool isValid() const
- {
- bool retVal = ApexDesc::isValid();
- return retVal;
- }
-
-private:
-
- PX_INLINE void init()
- {
- }
-};
-
-class ModuleBasicIosImpl : public ModuleBasicIos, public ModuleIntl, public ModuleBase, public ApexRWLockable
-{
-public:
- APEX_RW_LOCKABLE_BOILERPLATE
-
- ModuleBasicIosImpl(ApexSDKIntl* sdk);
- ~ModuleBasicIosImpl();
-
- void init(const ModuleBasicIosDesc& desc);
-
- // base class methods
- void init(NvParameterized::Interface&);
- NvParameterized::Interface* getDefaultModuleDesc();
- void release()
- {
- ModuleBase::release();
- }
- void destroy();
- const char* getName() const
- {
- return ModuleBase::getName();
- }
-
- //BasicIosActor * getApexActor( Scene* scene, AuthObjTypeID type ) const;
- ApexActor* getApexActor(Actor* nxactor, AuthObjTypeID type) const;
-
- ModuleSceneIntl* createInternalModuleScene(SceneIntl&, RenderDebugInterface*);
- void releaseModuleSceneIntl(ModuleSceneIntl&);
- uint32_t forceLoadAssets();
- AuthObjTypeID getModuleID() const;
- RenderableIterator* createRenderableIterator(const Scene&);
-
- virtual const char* getBasicIosTypeName();
-
- BasicIosScene* getBasicIosScene(const Scene& scene);
- const BasicIosScene* getBasicIosScene(const Scene& scene) const;
-
- ModuleIofxIntl* getInternalModuleIofx();
- ModuleFieldSamplerIntl* getInternalModuleFieldSampler();
-
- const TestBase* getTestBase(Scene* apexScene) const;
-
-protected:
-
- ResourceList mBasicIosSceneList;
- ResourceList mAuthorableObjects;
-
- friend class BasicIosScene;
-private:
- BasicIosModuleParameters* mModuleParams;
-
- ModuleIofxIntl* mIofxModule;
- ModuleFieldSamplerIntl* mFieldSamplerModule;
-};
-
-}
-} // namespace nvidia
-
-#endif // __MODULE_BASIC_IOS_IMPL_H__
diff --git a/APEX_1.4/module/basicios/include/ModuleEventDefs.h b/APEX_1.4/module/basicios/include/ModuleEventDefs.h
deleted file mode 100644
index cf9f4171..00000000
--- a/APEX_1.4/module/basicios/include/ModuleEventDefs.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.
- */
-
-
-// This file is used to define a list of AgPerfMon events.
-//
-// This file is included exclusively by AgPerfMonEventSrcAPI.h
-// and by AgPerfMonEventSrcAPI.cpp, for the purpose of building
-// an enumeration (enum xx) and an array of strings ()
-// that contain the list of events.
-//
-// This file should only contain event definitions, using the
-// DEFINE_EVENT macro. E.g.:
-//
-// DEFINE_EVENT(sample_name_1)
-// DEFINE_EVENT(sample_name_2)
-// DEFINE_EVENT(sample_name_3)
-
-DEFINE_EVENT(BasicIosSceneFetchResults)
-DEFINE_EVENT(BasicIosCreateObjects)
-DEFINE_EVENT(BasicIosFetchResults)
-
-
diff --git a/APEX_1.4/module/basicios/include/ModuleName.h b/APEX_1.4/module/basicios/include/ModuleName.h
deleted file mode 100644
index 6620ac06..00000000
--- a/APEX_1.4/module/basicios/include/ModuleName.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * 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_NAME_H___
-#define __MODULE_NAME_H___
-
-#define MODULE_NAMESPACE basicios
-
-#endif \ No newline at end of file
diff --git a/APEX_1.4/module/basicios/include/ModulePerfScope.h b/APEX_1.4/module/basicios/include/ModulePerfScope.h
deleted file mode 100644
index fe58f327..00000000
--- a/APEX_1.4/module/basicios/include/ModulePerfScope.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * 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_PERF_SCOPE_H___
-#define __MODULE_PERF_SCOPE_H___
-
-#define MODULE_NAMESPACE basicios
-#include "ModuleProfileCommon.h"
-
-#endif \ No newline at end of file
diff --git a/APEX_1.4/module/basicios/include/autogen/BasicIOSAssetParam.h b/APEX_1.4/module/basicios/include/autogen/BasicIOSAssetParam.h
deleted file mode 100644
index 4e66e462..00000000
--- a/APEX_1.4/module/basicios/include/autogen/BasicIOSAssetParam.h
+++ /dev/null
@@ -1,282 +0,0 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and related documentation and
-// any modifications thereto. Any use, reproduction, disclosure, or
-// distribution of this software and related documentation without an express
-// license agreement from NVIDIA Corporation is strictly prohibited.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products 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<BasicIOSAssetParam*>(this);
- return *(static_cast<BasicIOSAssetParamNS::ParametersStruct*>(tmpThis));
- }
-
- BasicIOSAssetParamNS::ParametersStruct& parameters(void)
- {
- return *(static_cast<BasicIOSAssetParamNS::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 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
diff --git a/APEX_1.4/module/basicios/include/autogen/BasicIosDebugRenderParams.h b/APEX_1.4/module/basicios/include/autogen/BasicIosDebugRenderParams.h
deleted file mode 100644
index caca5349..00000000
--- a/APEX_1.4/module/basicios/include/autogen/BasicIosDebugRenderParams.h
+++ /dev/null
@@ -1,232 +0,0 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and related documentation and
-// any modifications thereto. Any use, reproduction, disclosure, or
-// distribution of this software and related documentation without an express
-// license agreement from NVIDIA Corporation is strictly prohibited.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products 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_BasicIosDebugRenderParams_h
-#define HEADER_BasicIosDebugRenderParams_h
-
-#include "NvParametersTypes.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 BasicIosDebugRenderParamsNS
-{
-
-
-
-struct ParametersStruct
-{
-
- bool VISUALIZE_BASIC_IOS_ACTOR;
- bool VISUALIZE_BASIC_IOS_COLLIDE_SHAPES;
- bool VISUALIZE_BASIC_IOS_GRID_DENSITY;
-
-};
-
-static const uint32_t checksum[] = { 0xfdf6893d, 0xf8944ef9, 0x2d74bc9a, 0x7fb067bf, };
-
-} // namespace BasicIosDebugRenderParamsNS
-
-#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS
-class BasicIosDebugRenderParams : public NvParameterized::NvParameters, public BasicIosDebugRenderParamsNS::ParametersStruct
-{
-public:
- BasicIosDebugRenderParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0);
-
- virtual ~BasicIosDebugRenderParams();
-
- virtual void destroy();
-
- static const char* staticClassName(void)
- {
- return("BasicIosDebugRenderParams");
- }
-
- 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(BasicIosDebugRenderParamsNS::checksum);
- return BasicIosDebugRenderParamsNS::checksum;
- }
-
- static void freeParameterDefinitionTable(NvParameterized::Traits* traits);
-
- const uint32_t* checksum(uint32_t& bits) const
- {
- return staticChecksum(bits);
- }
-
- const BasicIosDebugRenderParamsNS::ParametersStruct& parameters(void) const
- {
- BasicIosDebugRenderParams* tmpThis = const_cast<BasicIosDebugRenderParams*>(this);
- return *(static_cast<BasicIosDebugRenderParamsNS::ParametersStruct*>(tmpThis));
- }
-
- BasicIosDebugRenderParamsNS::ParametersStruct& parameters(void)
- {
- return *(static_cast<BasicIosDebugRenderParamsNS::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 BasicIosDebugRenderParamsFactory : public NvParameterized::Factory
-{
- static const char* const vptr;
-
-public:
-
- virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits)
- {
- BasicIosDebugRenderParams::freeParameterDefinitionTable(traits);
- }
-
- virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits)
- {
- // placement new on this class using mParameterizedTraits
-
- void* newPtr = paramTraits->alloc(sizeof(BasicIosDebugRenderParams), BasicIosDebugRenderParams::ClassAlignment);
- if (!NvParameterized::IsAligned(newPtr, BasicIosDebugRenderParams::ClassAlignment))
- {
- NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIosDebugRenderParams");
- paramTraits->free(newPtr);
- return 0;
- }
-
- memset(newPtr, 0, sizeof(BasicIosDebugRenderParams)); // always initialize memory allocated to zero for default values
- return NV_PARAM_PLACEMENT_NEW(newPtr, BasicIosDebugRenderParams)(paramTraits);
- }
-
- virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount)
- {
- if (!NvParameterized::IsAligned(bufObj, BasicIosDebugRenderParams::ClassAlignment)
- || !NvParameterized::IsAligned(bufStart, BasicIosDebugRenderParams::ClassAlignment))
- {
- NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIosDebugRenderParams");
- return 0;
- }
-
- // Init NvParameters-part
- // We used to call empty constructor of BasicIosDebugRenderParams here
- // but it may call default constructors of members and spoil the data
- NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount);
-
- // Init vtable (everything else is already initialized)
- *(const char**)bufObj = vptr;
-
- return (BasicIosDebugRenderParams*)bufObj;
- }
-
- virtual const char* getClassName()
- {
- return (BasicIosDebugRenderParams::staticClassName());
- }
-
- virtual uint32_t getVersion()
- {
- return (BasicIosDebugRenderParams::staticVersion());
- }
-
- virtual uint32_t getAlignment()
- {
- return (BasicIosDebugRenderParams::ClassAlignment);
- }
-
- virtual const uint32_t* getChecksum(uint32_t& bits)
- {
- return (BasicIosDebugRenderParams::staticChecksum(bits));
- }
-};
-#endif // NV_PARAMETERIZED_ONLY_LAYOUTS
-
-} // namespace basicios
-} // namespace nvidia
-
-#if PX_VC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/APEX_1.4/module/basicios/include/autogen/BasicIosModuleParameters.h b/APEX_1.4/module/basicios/include/autogen/BasicIosModuleParameters.h
deleted file mode 100644
index 6a382a80..00000000
--- a/APEX_1.4/module/basicios/include/autogen/BasicIosModuleParameters.h
+++ /dev/null
@@ -1,230 +0,0 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and related documentation and
-// any modifications thereto. Any use, reproduction, disclosure, or
-// distribution of this software and related documentation without an express
-// license agreement from NVIDIA Corporation is strictly prohibited.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products 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_BasicIosModuleParameters_h
-#define HEADER_BasicIosModuleParameters_h
-
-#include "NvParametersTypes.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 BasicIosModuleParametersNS
-{
-
-
-
-struct ParametersStruct
-{
-
- uint32_t unused;
-
-};
-
-static const uint32_t checksum[] = { 0x3fbae874, 0x2a648c69, 0x7ac9c757, 0x46be4dcd, };
-
-} // namespace BasicIosModuleParametersNS
-
-#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS
-class BasicIosModuleParameters : public NvParameterized::NvParameters, public BasicIosModuleParametersNS::ParametersStruct
-{
-public:
- BasicIosModuleParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0);
-
- virtual ~BasicIosModuleParameters();
-
- virtual void destroy();
-
- static const char* staticClassName(void)
- {
- return("BasicIosModuleParameters");
- }
-
- 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(BasicIosModuleParametersNS::checksum);
- return BasicIosModuleParametersNS::checksum;
- }
-
- static void freeParameterDefinitionTable(NvParameterized::Traits* traits);
-
- const uint32_t* checksum(uint32_t& bits) const
- {
- return staticChecksum(bits);
- }
-
- const BasicIosModuleParametersNS::ParametersStruct& parameters(void) const
- {
- BasicIosModuleParameters* tmpThis = const_cast<BasicIosModuleParameters*>(this);
- return *(static_cast<BasicIosModuleParametersNS::ParametersStruct*>(tmpThis));
- }
-
- BasicIosModuleParametersNS::ParametersStruct& parameters(void)
- {
- return *(static_cast<BasicIosModuleParametersNS::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 BasicIosModuleParametersFactory : public NvParameterized::Factory
-{
- static const char* const vptr;
-
-public:
-
- virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits)
- {
- BasicIosModuleParameters::freeParameterDefinitionTable(traits);
- }
-
- virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits)
- {
- // placement new on this class using mParameterizedTraits
-
- void* newPtr = paramTraits->alloc(sizeof(BasicIosModuleParameters), BasicIosModuleParameters::ClassAlignment);
- if (!NvParameterized::IsAligned(newPtr, BasicIosModuleParameters::ClassAlignment))
- {
- NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIosModuleParameters");
- paramTraits->free(newPtr);
- return 0;
- }
-
- memset(newPtr, 0, sizeof(BasicIosModuleParameters)); // always initialize memory allocated to zero for default values
- return NV_PARAM_PLACEMENT_NEW(newPtr, BasicIosModuleParameters)(paramTraits);
- }
-
- virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount)
- {
- if (!NvParameterized::IsAligned(bufObj, BasicIosModuleParameters::ClassAlignment)
- || !NvParameterized::IsAligned(bufStart, BasicIosModuleParameters::ClassAlignment))
- {
- NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BasicIosModuleParameters");
- return 0;
- }
-
- // Init NvParameters-part
- // We used to call empty constructor of BasicIosModuleParameters here
- // but it may call default constructors of members and spoil the data
- NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount);
-
- // Init vtable (everything else is already initialized)
- *(const char**)bufObj = vptr;
-
- return (BasicIosModuleParameters*)bufObj;
- }
-
- virtual const char* getClassName()
- {
- return (BasicIosModuleParameters::staticClassName());
- }
-
- virtual uint32_t getVersion()
- {
- return (BasicIosModuleParameters::staticVersion());
- }
-
- virtual uint32_t getAlignment()
- {
- return (BasicIosModuleParameters::ClassAlignment);
- }
-
- virtual const uint32_t* getChecksum(uint32_t& bits)
- {
- return (BasicIosModuleParameters::staticChecksum(bits));
- }
-};
-#endif // NV_PARAMETERIZED_ONLY_LAYOUTS
-
-} // namespace basicios
-} // namespace nvidia
-
-#if PX_VC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/APEX_1.4/module/basicios/include/autogen/ModuleBasicIosRegistration.h b/APEX_1.4/module/basicios/include/autogen/ModuleBasicIosRegistration.h
deleted file mode 100644
index e5324edf..00000000
--- a/APEX_1.4/module/basicios/include/autogen/ModuleBasicIosRegistration.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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_MODULEBASICIOSREGISTRATIONH_H
-#define MODULE_MODULEBASICIOSREGISTRATIONH_H
-
-#include "PsAllocator.h"
-#include "NvRegistrationsForTraitsBase.h"
-#include "nvparameterized/NvParameterizedTraits.h"
-#include "PxAssert.h"
-#include <stdint.h>
-
-// INCLUDE GENERATED FACTORIES
-#include "BasicIOSAssetParam.h"
-#include "BasicIosDebugRenderParams.h"
-#include "BasicIosModuleParameters.h"
-
-
-// INCLUDE GENERATED CONVERSION
-
-
-namespace nvidia {
-namespace basicios {
-
-
-class ModuleBasicIosRegistration : public NvParameterized::RegistrationsForTraitsBase
-{
-public:
- static void invokeRegistration(NvParameterized::Traits* parameterizedTraits)
- {
- if (parameterizedTraits)
- {
- ModuleBasicIosRegistration().registerAll(*parameterizedTraits);
- }
- }
-
- static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits)
- {
- if (parameterizedTraits)
- {
- ModuleBasicIosRegistration().unregisterAll(*parameterizedTraits);
- }
- }
-
- void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits)
- {
- ::NvParameterized::Factory* factoriesToRegister[] = {
-// REGISTER GENERATED FACTORIES
- new nvidia::basicios::BasicIOSAssetParamFactory(),
- new nvidia::basicios::BasicIosDebugRenderParamsFactory(),
- new nvidia::basicios::BasicIosModuleParametersFactory(),
-
- };
-
- 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::basicios::BasicIOSAssetParamFactory(),
- new nvidia::basicios::BasicIosDebugRenderParamsFactory(),
- new nvidia::basicios::BasicIosModuleParametersFactory(),
-
- };
-
- for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i)
- {
- ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion());
- if (!removedFactory)
- {
- PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!");
- }
- else
- {
- removedFactory->freeParameterDefinitionTable(&parameterizedTraits);
- delete removedFactory;
- delete factoriesToUnregister[i];
- }
- }
- }
-
- virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits)
- {
-// UNREGISTER GENERATED CONVERSION
-PX_UNUSED(parameterizedTraits);
-
- }
-
-};
-
-
-}
-} //nvidia::basicios
-
-#endif