APEX Framework: TurbulenceFSActor.h Source File

NVIDIA APEX

TurbulenceFSActor.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 #ifndef TURBULENCE_FSACTOR_H
00012 #define TURBULENCE_FSACTOR_H
00013 
00014 #include "Apex.h"
00015 #include "Shape.h"
00016 
00017 namespace nvidia
00018 {
00019 namespace apex
00020 {
00021 
00022 class TurbulenceFSAsset;
00023 class TurbulenceRenderable;
00024 
00028 class TurbulenceFSActor : public Actor, public Renderable
00029 {
00030 protected:
00031     virtual ~TurbulenceFSActor() {}
00032 
00033 public:
00034 
00036     virtual TurbulenceFSAsset* getTurbulenceFSAsset() const = 0;
00037 
00039     virtual void setEnabled(bool enable) = 0;
00040 
00048     virtual void setPose(PxMat44 pose) = 0;
00049 
00057     virtual PxMat44 getPose() const = 0;
00058 
00060     virtual PxVec3 getGridBoundingBoxMin() = 0;
00062     virtual PxVec3 getGridBoundingBoxMax() = 0;
00063 
00065     virtual PxVec3 getGridSize() = 0;
00066 
00068     virtual void getGridDimensions(uint32_t &gridX,uint32_t &gridY,uint32_t &gridZ) = 0;
00069 
00071     virtual void setGridDimensions(const uint32_t &gridX, const uint32_t &gridY, const uint32_t &gridZ) = 0;
00072 
00080     virtual void setUpdatesPerFrame(float upd) = 0;
00082     virtual float getUpdatesPerFrame() const = 0;
00083 
00089     virtual void getVelocityField(void** x, void** y, void** z, uint32_t& sizeX, uint32_t& sizeY, uint32_t& sizeZ) = 0;
00090 
00092     virtual void setSampleVelocityFieldEnabled(bool enabled) = 0;
00093 
00095     virtual void setAngularVelocityMultiplierAndClamp(float angularVelocityMultiplier, float angularVelocityClamp) = 0;
00096 
00098     virtual void setLinearVelocityMultiplierAndClamp(float linearVelocityMultiplier, float linearVelocityClamp) = 0;
00099 
00101     virtual void setVelocityFieldFade(float fade) = 0;
00102 
00104     virtual void setFluidViscosity(float viscosity) = 0;
00105 
00107     virtual void setVelocityFieldCleaningTime(float time) = 0;
00108 
00110     virtual void setVelocityFieldCleaningDelay(float time) = 0;
00111 
00116     virtual void setVelocityFieldCleaningIntensity(float a) = 0;
00117 
00122     virtual void setUseHeat(bool enable) = 0;
00123 
00125     virtual void setHeatBasedParameters(float forceMultiplier, float ambientTemperature, PxVec3 heatForceDirection, float thermalConductivity) = 0;
00126 
00131     virtual void setUseDensity(bool enable) = 0;
00132 
00134     virtual bool getUseDensity(void) const = 0;
00135 
00137     virtual void setDensityBasedParameters(float diffusionCoef, float densityFieldFade) = 0;
00138 
00140     virtual void getDensityGridDimensions(uint32_t &gridX,uint32_t &gridY,uint32_t &gridZ) = 0;
00141 
00146     virtual void setExternalVelocity(PxVec3 vel) = 0;
00147 
00149     virtual void setFieldVelocityMultiplier(float value) = 0;
00150 
00152     virtual void setFieldVelocityWeight(float value) = 0;
00153 
00155     virtual void setNoiseParameters(float noiseStrength, PxVec3 noiseSpacePeriod, float noiseTimePeriod, uint32_t noiseOctaves) = 0;
00156 
00158     virtual void setDensityTextureRange(float minValue, float maxValue) = 0;
00159 
00161     virtual const char *getVolumeRenderMaterialName(void) const = 0;
00162 
00164     virtual void setCurrentScale(float scale) = 0;
00165 
00167     virtual float getCurrentScale(void) const = 0;
00168 
00170     virtual bool getUseFlame(void) const = 0;
00171 
00173     virtual void getFlameGridDimensions(uint32_t &gridX, uint32_t &gridY, uint32_t &gridZ) const = 0;
00174 
00181     virtual TurbulenceRenderable* acquireRenderableReference() = 0;
00182 
00183 };
00184 
00185 }
00186 } // end namespace nvidia
00187 
00188 #endif // TURBULENCE_FSACTOR_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.