TurbulenceFSActor.h
Go to the documentation of this file.
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:59:24 Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.