APEX Framework: nvidia::apex::TurbulenceFSActor Class Reference

NVIDIA APEX

nvidia::apex::TurbulenceFSActor Class Reference

Turbulence FieldSampler Actor class. More...

#include <TurbulenceFSActor.h>

Inheritance diagram for nvidia::apex::TurbulenceFSActor:
nvidia::apex::Actor nvidia::apex::Renderable nvidia::apex::ApexInterface nvidia::apex::RenderDataProvider nvidia::apex::RWLockable

List of all members.

Public Member Functions

virtual TurbulenceFSAssetgetTurbulenceFSAsset () const =0
 Returns the asset the instance has been created from.
virtual void setEnabled (bool enable)=0
 enable/disable the fluid simulation
virtual void setPose (PxMat44 pose)=0
 set the pose of the grid - this includes only the position and rotation.
virtual PxMat44 getPose () const =0
 get the pose of the grid - this includes only the position and rotation.
virtual PxVec3 getGridBoundingBoxMin ()=0
 get the grid bounding box min point
virtual PxVec3 getGridBoundingBoxMax ()=0
 get the grid bounding box max point
virtual PxVec3 getGridSize ()=0
 get the grid size vector
virtual void getGridDimensions (uint32_t &gridX, uint32_t &gridY, uint32_t &gridZ)=0
 get the grid dimensions
virtual void setGridDimensions (const uint32_t &gridX, const uint32_t &gridY, const uint32_t &gridZ)=0
 set the grid dimensions
virtual void setUpdatesPerFrame (float upd)=0
 force the current updates per frame to a particular value.
virtual float getUpdatesPerFrame () const =0
 get the current value of the updates per frame
virtual void getVelocityField (void **x, void **y, void **z, uint32_t &sizeX, uint32_t &sizeY, uint32_t &sizeZ)=0
 methods to get the velocity field sampled at grid centers.
virtual void setSampleVelocityFieldEnabled (bool enabled)=0
 enable/disable sample velocity field
virtual void setAngularVelocityMultiplierAndClamp (float angularVelocityMultiplier, float angularVelocityClamp)=0
 set a multiplier and a clamp on the total angular velocity induced in the system by the internal collision obstacle or by external collision objects
virtual void setLinearVelocityMultiplierAndClamp (float linearVelocityMultiplier, float linearVelocityClamp)=0
 set a multiplier and a clamp on the total linear velocity induced in the system by a collision obstacle
virtual void setVelocityFieldFade (float fade)=0
 set velocity field fade. All cells in the field multiplies by (1 - fade) on each frame
virtual void setFluidViscosity (float viscosity)=0
 set fluid viscosity (diffusion) for velocity
virtual void setVelocityFieldCleaningTime (float time)=0
 set time of velocity field cleaning process [sec]
virtual void setVelocityFieldCleaningDelay (float time)=0
 set time without activity before velocity field cleaning process starts [sec].
virtual void setVelocityFieldCleaningIntensity (float a)=0
virtual void setUseHeat (bool enable)=0
 enable whether or not to use heat in the simulation (enabling heat reduces performance).

virtual void setHeatBasedParameters (float forceMultiplier, float ambientTemperature, PxVec3 heatForceDirection, float thermalConductivity)=0
 set heat specific parameters for the simulation
virtual void setUseDensity (bool enable)=0
 enable whether or not to use density in the simulation (enabling density reduces performance).

virtual bool getUseDensity (void) const =0
 Returns true if turbulence actor is in density mode.
virtual void setDensityBasedParameters (float diffusionCoef, float densityFieldFade)=0
 set density specific parameters for the simulation
virtual void getDensityGridDimensions (uint32_t &gridX, uint32_t &gridY, uint32_t &gridZ)=0
 get the density grid dimensions
virtual void setExternalVelocity (PxVec3 vel)=0
 allows external actors like wind or explosion to add a single directional velocity to the grid.

virtual void setFieldVelocityMultiplier (float value)=0
 set a multiplier for the field velocity
virtual void setFieldVelocityWeight (float value)=0
 set a weight for the field velocity
virtual void setNoiseParameters (float noiseStrength, PxVec3 noiseSpacePeriod, float noiseTimePeriod, uint32_t noiseOctaves)=0
 set noise parameters
virtual void setDensityTextureRange (float minValue, float maxValue)=0
 set density texture range
virtual const char * getVolumeRenderMaterialName (void) const =0
 Returns the optional volume render material name specified for this turbulence actor.
virtual void setCurrentScale (float scale)=0
 Sets the uniform overall object scale.
virtual float getCurrentScale (void) const =0
 Retrieves the uniform overall object scale.
virtual bool getUseFlame (void) const =0
 Returns true if turbulence actor is in flame mode.
virtual void getFlameGridDimensions (uint32_t &gridX, uint32_t &gridY, uint32_t &gridZ) const =0
 Returns flame grid dimensions.
virtual TurbulenceRenderableacquireRenderableReference ()=0
 Acquire a pointer to the Turbulence renderable proxy and increment its reference count.

Detailed Description

Turbulence FieldSampler Actor class.


Member Function Documentation

virtual TurbulenceRenderable* nvidia::apex::TurbulenceFSActor::acquireRenderableReference ( ) [pure virtual]

Acquire a pointer to the Turbulence renderable proxy and increment its reference count.

The TurbulenceRenderable will only be deleted when its reference count is zero. Calls to TurbulenceRenderable::release decrement the reference count, as does a call to TurbulenceFSActor::release().

virtual PxMat44 nvidia::apex::TurbulenceFSActor::getPose ( ) const [pure virtual]

get the pose of the grid - this includes only the position and rotation.

the position is that of the center of the grid, as is determined as (pose.column3.x, pose.column3.y, pose.column3.z)
the rotation is the rotation of the object that the grid is centered on
(the grid does not rotate, but we use this pose for rotating the collision obstacle, the jets and imparting angular momentum)

virtual void nvidia::apex::TurbulenceFSActor::getVelocityField ( void **  x,
void **  y,
void **  z,
uint32_t &  sizeX,
uint32_t &  sizeY,
uint32_t &  sizeZ 
) [pure virtual]

methods to get the velocity field sampled at grid centers.

call setSampleVelocityFieldEnabled(true) to enable the sampling and call getVelocityField to get back the sampled results

virtual void nvidia::apex::TurbulenceFSActor::setExternalVelocity ( PxVec3  vel) [pure virtual]

allows external actors like wind or explosion to add a single directional velocity to the grid.

Note:
if multiple calls to this function are made only the last call is honored (i.e. the velocities are not accumulated)
virtual void nvidia::apex::TurbulenceFSActor::setPose ( PxMat44  pose) [pure virtual]

set the pose of the grid - this includes only the position and rotation.

the position is that of the center of the grid, as is determined as (pose.column3.x, pose.column3.y, pose.column3.z)
the rotation is the rotation of the object that the grid is centered on
(the grid does not rotate, but we use this pose for rotating the collision obstacle, the jets and imparting angular momentum)

virtual void nvidia::apex::TurbulenceFSActor::setUpdatesPerFrame ( float  upd) [pure virtual]

force the current updates per frame to a particular value.

Range is 0-1:
1.0f is maximum simulation quality
0.0f is minimum simulation quality

virtual void nvidia::apex::TurbulenceFSActor::setUseDensity ( bool  enable) [pure virtual]

enable whether or not to use density in the simulation (enabling density reduces performance).

Note:
If you are enabling density then you also need to add substance sources (without substance sources you will see no effect of density on the simulation, except a drop in performance)
virtual void nvidia::apex::TurbulenceFSActor::setUseHeat ( bool  enable) [pure virtual]

enable whether or not to use heat in the simulation (enabling heat reduces performance).

Note:
If you are enabling heat then you also need to add temperature sources (without temperature sources you will see no effect of heat on the simulation, except a drop in performance)
virtual void nvidia::apex::TurbulenceFSActor::setVelocityFieldCleaningIntensity ( float  a) [pure virtual]

set parameter which correspond to 'a' in erf(a*(cleaning_timer/velocityFieldCleaningTime)). for full cleaning it should be greater then 2. If you want just decrease velocity magitude use smaller value


The documentation for this class was generated from the following file:

Generated on Fri Dec 15 2017 13:58:41

Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.