Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TURBULENCE_FSACTOR_H
00030 #define TURBULENCE_FSACTOR_H
00031
00032 #include "Apex.h"
00033 #include "Shape.h"
00034
00035 namespace nvidia
00036 {
00037 namespace apex
00038 {
00039
00040 class TurbulenceFSAsset;
00041 class TurbulenceRenderable;
00042
00046 class TurbulenceFSActor : public Actor, public Renderable
00047 {
00048 protected:
00049 virtual ~TurbulenceFSActor() {}
00050
00051 public:
00052
00054 virtual TurbulenceFSAsset* getTurbulenceFSAsset() const = 0;
00055
00057 virtual void setEnabled(bool enable) = 0;
00058
00066 virtual void setPose(PxMat44 pose) = 0;
00067
00075 virtual PxMat44 getPose() const = 0;
00076
00078 virtual PxVec3 getGridBoundingBoxMin() = 0;
00080 virtual PxVec3 getGridBoundingBoxMax() = 0;
00081
00083 virtual PxVec3 getGridSize() = 0;
00084
00086 virtual void getGridDimensions(uint32_t &gridX,uint32_t &gridY,uint32_t &gridZ) = 0;
00087
00089 virtual void setGridDimensions(const uint32_t &gridX, const uint32_t &gridY, const uint32_t &gridZ) = 0;
00090
00098 virtual void setUpdatesPerFrame(float upd) = 0;
00100 virtual float getUpdatesPerFrame() const = 0;
00101
00107 virtual void getVelocityField(void** x, void** y, void** z, uint32_t& sizeX, uint32_t& sizeY, uint32_t& sizeZ) = 0;
00108
00110 virtual void setSampleVelocityFieldEnabled(bool enabled) = 0;
00111
00113 virtual void setAngularVelocityMultiplierAndClamp(float angularVelocityMultiplier, float angularVelocityClamp) = 0;
00114
00116 virtual void setLinearVelocityMultiplierAndClamp(float linearVelocityMultiplier, float linearVelocityClamp) = 0;
00117
00119 virtual void setVelocityFieldFade(float fade) = 0;
00120
00122 virtual void setFluidViscosity(float viscosity) = 0;
00123
00125 virtual void setVelocityFieldCleaningTime(float time) = 0;
00126
00128 virtual void setVelocityFieldCleaningDelay(float time) = 0;
00129
00134 virtual void setVelocityFieldCleaningIntensity(float a) = 0;
00135
00140 virtual void setUseHeat(bool enable) = 0;
00141
00143 virtual void setHeatBasedParameters(float forceMultiplier, float ambientTemperature, PxVec3 heatForceDirection, float thermalConductivity) = 0;
00144
00149 virtual void setUseDensity(bool enable) = 0;
00150
00152 virtual bool getUseDensity(void) const = 0;
00153
00155 virtual void setDensityBasedParameters(float diffusionCoef, float densityFieldFade) = 0;
00156
00158 virtual void getDensityGridDimensions(uint32_t &gridX,uint32_t &gridY,uint32_t &gridZ) = 0;
00159
00164 virtual void setExternalVelocity(PxVec3 vel) = 0;
00165
00167 virtual void setFieldVelocityMultiplier(float value) = 0;
00168
00170 virtual void setFieldVelocityWeight(float value) = 0;
00171
00173 virtual void setNoiseParameters(float noiseStrength, PxVec3 noiseSpacePeriod, float noiseTimePeriod, uint32_t noiseOctaves) = 0;
00174
00176 virtual void setDensityTextureRange(float minValue, float maxValue) = 0;
00177
00179 virtual const char *getVolumeRenderMaterialName(void) const = 0;
00180
00182 virtual void setCurrentScale(float scale) = 0;
00183
00185 virtual float getCurrentScale(void) const = 0;
00186
00188 virtual bool getUseFlame(void) const = 0;
00189
00191 virtual void getFlameGridDimensions(uint32_t &gridX, uint32_t &gridY, uint32_t &gridZ) const = 0;
00192
00199 virtual TurbulenceRenderable* acquireRenderableReference() = 0;
00200
00201 };
00202
00203 }
00204 }
00205
00206 #endif // TURBULENCE_FSACTOR_H