APEX Framework: ModuleTurbulenceFS.h Source File

NVIDIA APEX

ModuleTurbulenceFS.h
00001 /*
00002  * Copyright (c) 2008-2017, NVIDIA CORPORATION.  All rights reserved.
00003  *
00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
00005  * and proprietary rights in and to this software, related documentation
00006  * and any modifications thereto.  Any use, reproduction, disclosure or
00007  * distribution of this software and related documentation without an express
00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
00009  */
00010 
00011 
00012 #ifndef MODULE_TURBULENCE_FS_H
00013 #define MODULE_TURBULENCE_FS_H
00014 
00015 #include "Apex.h"
00016 #include "Shape.h"
00017 #include "VelocitySourceActor.h"
00018 #include "HeatSourceActor.h"
00019 #include "SubstanceSourceActor.h"
00020 #include "FlameEmitterActor.h"
00021 #include "TestBase.h"
00022 #include "PxFiltering.h"
00023 
00024 namespace nvidia
00025 {
00026 namespace apex
00027 {
00028 
00029 class TurbulenceFSAsset;
00030 class TurbulenceFSAssetAuthoring;
00031 
00032 class TurbulenceRenderCallback;
00033 
00037 class ModuleTurbulenceFS : public Module
00038 {
00039 public:
00040 
00042     virtual bool                        setCustomTimestep(const Scene& apexScene, float timestep, int numIterations) = 0;
00043 
00045     virtual bool                        setMultiSolveEnabled(const Scene& apexScene, bool enabled) = 0;
00046 
00048     virtual void                        enableOutputVelocityField() = 0;
00049 
00051     virtual void                        enableOutputDensityField() = 0;
00052 
00054     virtual void                        enableOutputFlameField() = 0;
00055 
00057     virtual void                        setCustomFilterShader(physx::PxSimulationFilterShader shader, const void* shaderData, uint32_t shaderDataSize) = 0;
00058 
00060     virtual const TestBase*             getTestBase(Scene* apexScene) const = 0;
00061 
00063     virtual int32_t                     getGridSizePow() const = 0;
00064 
00066     virtual void                        setGridSizePow(int32_t power) = 0;
00067 
00069     virtual void                        prepareRenderables(const Scene&) = 0;
00070 
00075     virtual bool                        setTurbulenceRenderCallback(const Scene& apexScene, TurbulenceRenderCallback* ) = 0;
00076     
00081     virtual TurbulenceRenderCallback*   getTurbulenceRenderCallback(const Scene& apexScene) const = 0;
00082 
00083 protected:
00084     virtual ~ModuleTurbulenceFS() {}
00085 };
00086 
00087 #if !defined(_USRDLL)
00088 
00092 void instantiateModuleTurbulenceFS();
00093 #endif
00094 
00095 }
00096 } // end namespace nvidia
00097 
00098 #endif // MODULE_TURBULENCE_FS_H

Generated on Fri Dec 15 2017 13:58:35
Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.