aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/module/pxparticleios/include/ParticleIosScene.h
diff options
context:
space:
mode:
Diffstat (limited to 'APEX_1.4/module/pxparticleios/include/ParticleIosScene.h')
-rw-r--r--APEX_1.4/module/pxparticleios/include/ParticleIosScene.h287
1 files changed, 0 insertions, 287 deletions
diff --git a/APEX_1.4/module/pxparticleios/include/ParticleIosScene.h b/APEX_1.4/module/pxparticleios/include/ParticleIosScene.h
deleted file mode 100644
index f1a131dd..00000000
--- a/APEX_1.4/module/pxparticleios/include/ParticleIosScene.h
+++ /dev/null
@@ -1,287 +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 __PARTICLE_IOS_SCENE_H__
-#define __PARTICLE_IOS_SCENE_H__
-
-#include "Apex.h"
-#include "ModuleParticleIos.h"
-#include "ApexSDKIntl.h"
-#include "ModuleIntl.h"
-#include "ModuleParticleIosImpl.h"
-#include "ApexSharedUtils.h"
-#include "ApexSDKHelpers.h"
-#include "ApexContext.h"
-#include "ApexActor.h"
-#include "ModulePerfScope.h"
-
-#include "PsTime.h"
-
-#include "DebugRenderParams.h"
-#include "ParticleIosDebugRenderParams.h"
-
-#include "ParticleIosCommon.h"
-
-#include "FieldSamplerQueryIntl.h"
-
-#if APEX_CUDA_SUPPORT
-#include "ApexCudaWrapper.h"
-#include "ApexCuda.h"
-#include "CudaModuleScene.h"
-
-#include "../cuda/include/common.h"
-
-#define SCENE_CUDA_OBJ(scene, name) static_cast<ParticleIosSceneGPU&>(scene).APEX_CUDA_OBJ_NAME(name)
-
-#endif
-
-namespace nvidia
-{
-namespace apex
-{
-class RenderDebugInterface;
-class FieldSamplerManagerIntl;
-}
-
-namespace pxparticleios
-{
-
-class ParticleIosInjectorStorage
-{
-public:
- virtual bool growInjectorStorage(uint32_t newSize) = 0;
-};
-class ParticleIosInjectorAllocator
-{
-public:
- ParticleIosInjectorAllocator(ParticleIosInjectorStorage* 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:
- ParticleIosInjectorStorage* mStorage;
-
- physx::Array<uint32_t> mInjectorList;
- uint32_t mFreeInjectorListStart;
- uint32_t mReleasedInjectorListStart;
-};
-
-
-class ParticleIosScene : public ModuleSceneIntl, public ApexContext, public ApexResourceInterface, public ApexResource, protected ParticleIosInjectorStorage
-{
-public:
- ParticleIosScene(ModuleParticleIosImpl& module, SceneIntl& scene, RenderDebugInterface* renderDebug, ResourceList& list);
- ~ParticleIosScene();
-
- /* 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 ParticleIosActorImpl* createIosActor(ResourceList& list, ParticleIosAssetImpl& asset, IofxAsset& iofxAsset) = 0;
-
- void submitTasks(float elapsedTime, float substepSize, uint32_t numSubSteps);
- void setTaskDependencies();
- void fetchResults();
-
- FieldSamplerManagerIntl* getInternalFieldSamplerManager();
- SceneIntl& getApexScene() const
- {
- return *mApexScene;
- }
- PX_INLINE ParticleIosInjectorAllocator& getInjectorAllocator()
- {
- return mInjectorAllocator;
- }
- virtual void fetchInjectorParams(uint32_t injectorID, Px3InjectorParams& injParams) = 0;
- virtual void updateInjectorParams(uint32_t injectorID, const Px3InjectorParams& injParams) = 0;
-
-protected:
- virtual void onSimulationStart() {}
- virtual void onSimulationFinish()
- {
- mInjectorAllocator.flushReleased();
- }
-
- void destroy();
- float computeAABBDistanceSquared(const PxBounds3& aabb);
-
- ModuleParticleIosImpl* mModule;
- SceneIntl* mApexScene;
-
- RenderDebugInterface* mRenderDebug;
- float mSumBenefit;
-
- DebugRenderParams* mDebugRenderParams;
- ParticleIosDebugRenderParams* mParticleIosDebugRenderParams;
-
- FieldSamplerManagerIntl* mFieldSamplerManager;
-
- ParticleIosInjectorAllocator mInjectorAllocator;
-
- friend class ParticleIosActorImpl;
- friend class ParticleIosAssetImpl;
- friend class ModuleParticleIosImpl;
-};
-
-class ParticleIosSceneCPU : public ParticleIosScene
-{
- 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:
- ParticleIosSceneCPU(ModuleParticleIosImpl& module, SceneIntl& scene, RenderDebugInterface* debugRender, ResourceList& list);
- ~ParticleIosSceneCPU();
-
- virtual ParticleIosActorImpl* createIosActor(ResourceList& list, ParticleIosAssetImpl& asset, IofxAsset& iofxAsset);
-
- virtual void fetchInjectorParams(uint32_t injectorID, Px3InjectorParams& injParams)
- {
- PX_ASSERT(injectorID < mInjectorParamsArray.size());
- injParams = mInjectorParamsArray[ injectorID ];
- }
- virtual void updateInjectorParams(uint32_t injectorID, const Px3InjectorParams& injParams)
- {
- PX_ASSERT(injectorID < mInjectorParamsArray.size());
- mInjectorParamsArray[ injectorID ] = injParams;
- }
-
- void fetchResults();
-
-protected:
- virtual bool growInjectorStorage(uint32_t newSize)
- {
- mInjectorParamsArray.resize(newSize);
- return true;
- }
-
-private:
- physx::Array<Px3InjectorParams> mInjectorParamsArray;
- TimerCallback mTimerCallback;
-
- friend class ParticleIosActorCPU;
-};
-
-#if APEX_CUDA_SUPPORT
-class ParticleIosSceneGPU : public ParticleIosScene, 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:
- ParticleIosSceneGPU(ModuleParticleIosImpl& module, SceneIntl& scene, RenderDebugInterface* debugRender, ResourceList& list);
- ~ParticleIosSceneGPU();
-
- virtual ParticleIosActorImpl* createIosActor(ResourceList& list, ParticleIosAssetImpl& asset, IofxAsset& iofxAsset);
-
- virtual void fetchInjectorParams(uint32_t injectorID, Px3InjectorParams& injParams);
- virtual void updateInjectorParams(uint32_t injectorID, const Px3InjectorParams& injParams);
-
- void fetchResults();
-
- void* getHeadCudaObj()
- {
- return CudaModuleScene::getHeadCudaObj();
- }
-//CUDA module objects
-#include "../cuda/include/moduleList.h"
-
-protected:
- 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 ParticleIosActorGPU;
-};
-#endif
-
-}
-} // namespace nvidia
-
-#endif // __PARTICLE_IOS_SCENE_H__