- Main Page
- Related Pages
- Modules
- Classes
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions

# MFnFluid Class Reference

# OpenMayaFX - API module for effects | FunctionSet classes

Search for all occurrences

## Detailed Description

Fluid node function set.

This is the function set for fluid objects.

A fluid object is a node in the dependency graph that contains a grid which is made up of cells. Each cell has a variety of values assigned to it such as density, velocity, temperature, and color. The grid may be 2D or 3D. See the methods below for full details.

Fluid objects may be used for simulation purposes. This function set allows read and write access to the values in the cells of the fluid object.

Examples:

  fluidInfoCmd.cpp, simpleFluidEmitter.cpp, and simpleFluidEmitter.h.

`#include <MFnFluid.h>`

Inheritance diagram for MFnFluid:
[legend]

List of all members.

## Public Types
enum | FluidMethod { kZero, kStaticGrid, kDynamicGrid, kGradient }
| Defines how voxel values are computed for most types of fluid data. More...
enum | FluidGradient { kConstant, kXGradient, kYGradient, kZGradient, kNegXGradient, kNegYGradient, kNegZGradient, kCenterGradient }
| Defines the orientation of the gradient. More...
enum | FalloffMethod { kNoFalloffGrid, kStaticFalloffGrid }
| Falloff data only supports a subset of the available fluid methods. More...
enum | ColorMethod { kUseShadingColor, kStaticColorGrid, kDynamicColorGrid }
| Color data has its own set of methods for computing voxel data. More...
enum | CoordinateMethod { kFixed, kGrid }
| Coordinate data has its own set of methods for computing voxel data. More...
## Public Member Functions
virtual MFn::Type | type () const
| Function set type.
virtual | ~MFnFluid ()
| Destructor.
| MFnFluid ()
| Default constructor.
| MFnFluid (MObject &object, MStatus *ReturnStatus=NULL)
| Constructor.
| MFnFluid (const MDagPath &object, MStatus *ret=NULL)
| Constructor.
MObject | create3D (unsigned int Xres, unsigned int Yres, unsigned int Zres, double Xdim, double Ydim, double Zdim, MObject parentOrOwner=MObject::kNullObj, MStatus *ReturnStatus=NULL)
| Creates a fluid object from the specified data and sets this function set to operate on the new fluid object.
MObject | create2D (unsigned int Xres, unsigned int Yres, double Xdim, double Ydim, MObject parentOrOwner=MObject::kNullObj, MStatus *ReturnStatus=NULL)
| Creates a fluid object from the specified data and sets this function set to operate on the new fluid object.
MStatus | getResolution (unsigned int &Xres, unsigned int &Yres, unsigned int &Zres) const
| Gets the resolution of the fluid.
MStatus | getResolution (unsigned int &Xres, unsigned int &Yres) const
| Gets the resolution of the fluid.
MStatus | getDimensions (double &Xdim, double &Ydim, double &Zdim) const
| Gets the dimensions of the fluid.
MStatus | setSize (unsigned int Xres, unsigned int Yres, unsigned int Zres, double Xdim, double Ydim, double Zdim, bool resample)
| Sets the size and resolution of the grid.
MStatus | setSize (unsigned int Xres, unsigned int Yres, double Xdim, double Ydim, bool resample)
| Sets the size and resolution of the grid.
unsigned int | gridSize (MStatus *ReturnStatus=NULL)
| Returns the number of elements in the grid.
MStatus | velocityGridSizes (int &xsize, int &ysize, int &zsize)
| Returns the number of elements in the velocity grids.
float * | falloff (MStatus *ReturnStatus=NULL)
| This method returns a pointer to the storage for the falloff data in the fluid.
float * | density (MStatus *ReturnStatus=NULL)
| This method returns a pointer to the storage for the density data in the fluid.
MStatus | getVelocity (float *&Xvel, float *&Yvel, float *&Zvel)
| This method returns pointers to the storage for the velocity data in the fluid.
float * | pressure (MStatus *ReturnStatus=NULL)
| This method returns a pointer to the storage for the pressure data in the fluid.
float * | temperature (MStatus *ReturnStatus=NULL)
| This method returns a pointer to the storage for the temperature data in the fluid.
float * | fuel (MStatus *ReturnStatus=NULL)
| This method returns a pointer to the storage for the fuel data in the fluid.
MStatus | getCoordinates (float *&u, float *&v, float *&w)
| This method returns pointers to the storage for the uvw coordinate data in the fluid.
MStatus | getColors (float *&r, float *&g, float *&b)
| This method returns pointers to the storage for the color data in the fluid.
MStatus | setFalloffMode (FalloffMethod mode)
| Set the modes by which the shader falloff values in the grid are determined.
MStatus | getFalloffMode (FalloffMethod &mode)
| Get the modes by which the falloff values in the grid are determined.
MStatus | setDensityMode (FluidMethod mode, FluidGradient gradient)
| Set the modes by which the density values in the grid are determined.
MStatus | getDensityMode (FluidMethod &mode, FluidGradient &gradient)
| Get the modes by which the density values in the grid are determined.
MStatus | setVelocityMode (FluidMethod mode, FluidGradient gradient)
| Set the modes by which the velocity values in the grid are determined.
MStatus | getVelocityMode (FluidMethod &mode, FluidGradient &gradient)
| Get the modes by which the velocity values in the grid are determined.
MStatus | setTemperatureMode (FluidMethod mode, FluidGradient gradient)
| Set the modes by which the temperature values in the grid are determined.
MStatus | getTemperatureMode (FluidMethod &mode, FluidGradient &gradient)
| Get the modes by which the temperature values in the grid are determined.
MStatus | setFuelMode (FluidMethod mode, FluidGradient gradient)
| Set the modes by which the fuel values in the grid are determined.
MStatus | getFuelMode (FluidMethod &mode, FluidGradient &gradient)
| Get the modes by which the fuel values in the grid are determined.
MStatus | setCoordinateMode (CoordinateMethod mode)
| Set the modes by which the UVW coordinate values in the grid are determined.
MStatus | getCoordinateMode (CoordinateMethod &mode)
| Get the modes by which the UVW coordinates values in the grid are determined.
MStatus | setColorMode (ColorMethod mode)
| Set the modes by which the color values in the grid are determined.
MStatus | getColorMode (ColorMethod &mode)
| Get the modes by which the color values in the grid are determined.
MStatus | getForceAtPoint (const MPointArray &point, const MVectorArray &velocity, const MDoubleArray &mass, MVectorArray &force, double deltaTime=1.0/24.0)
| Compute the force of the fluid as a field on an array of points, given their position, velocity, and mass.
MStatus | getForceAtPoint (const MVectorArray &point, const MVectorArray &velocity, const MDoubleArray &mass, MVectorArray &force, double deltaTime=1.0/24.0)
| Compute the force of a field on an array of points, given their position, velocity, and mass.
bool | toGridIndex (const MPoint &objectSpacePoint, int3 &gridCoords, MStatus *status=NULL)
| For the given point in object space, get the grid indices of the voxel that it happens to lie in.
MStatus | voxelCenterPosition (int xi, int yi, int zi, MPoint &objectSpacePoint)
| For the given voxel, get the location of the center in object space.
MStatus | updateGrid ()
| Tells the fluid shape that the contents of the fluid grid has changed.
void | emitIntoArrays (float val, int x, int y, int z, float density, float heat, float fuel, bool doColor, const MColor &emitColor)
| Use this method to add density, heat, fuel, and/or color to a particular voxel of a fluid.
int | index (int xi, int yi)
| This is a utility routine for finding the index of a cell in an array of fluid data.
int | index (int xi, int yi, int zi)
| This is a utility routine for finding the index of a cell in an array of fluid data.
void | index (int ai, int &xi, int &yi, int &zi)
| This is a utility routine for finding the coordinates of a cell in an array of fluid data given the index.
int | index (int xi, int yi, int zi, int xres, int yres, int zres)
| This is a utility routine for finding the index of a cell given the X, Y and Z resolutions.
void | index (int ai, int xres, int yres, int zres, int &xi, int &yi, int &zi)
| This is a utility routine for finding the coordinates of a cell given the index, and the X, Y and Z resolutions.
| MFnFluid (const MObject &object, MStatus *ret=NULL)
| Constructor.
## Protected Member Functions
virtual const char * | className () const
| Class name.

## Member Enumeration Documentation

enum FluidMethod

Search for all occurrences

Defines how voxel values are computed for most types of fluid data.

Enumerator:

  kZero | All values in grid are zero. Search for all occurrences
  kStaticGrid | Values in the grid are static. Search for all occurrences
  kDynamicGrid | Values in the grid come from a dynamic solver. Search for all occurrences
  kGradient | Ramps the value based on the gradient setting. Search for all occurrences

enum FluidGradient

Search for all occurrences

Defines the orientation of the gradient.

Enumerator:

  kConstant | Value is set to one across the volume. Search for all occurrences
  kXGradient | Ramp the value from zero to one along the X axis. Search for all occurrences
  kYGradient | Ramp the value from zero to one along the Y axis. Search for all occurrences
  kZGradient | Ramp the value from zero to one along the Z axis. Search for all occurrences
  kNegXGradient | Ramp the value from one to zero along the X axis. Search for all occurrences
  kNegYGradient | Ramp the value from one to zero along the Y axis. Search for all occurrences
  kNegZGradient | Ramp the value from one to zero along the Z axis. Search for all occurrences
  kCenterGradient | Ramps the value from one at the center to zero at the edges. Search for all occurrences

enum FalloffMethod

Search for all occurrences

Falloff data only supports a subset of the available fluid methods.

Enumerator:

  kNoFalloffGrid | No falloff grid should be defined. Search for all occurrences
  kStaticFalloffGrid | Values in the falloff grid are static. Search for all occurrences

enum ColorMethod

Search for all occurrences

Color data has its own set of methods for computing voxel data.

Enumerator:

  kUseShadingColor | Off, use shading color instead. Search for all occurrences
  kStaticColorGrid | Values in the grid are static. Search for all occurrences
  kDynamicColorGrid | Values in the grid come from a dynamic solver. Search for all occurrences

enum CoordinateMethod

Search for all occurrences

Coordinate data has its own set of methods for computing voxel data.

Enumerator:

  kFixed | Values are equal the object space coordinates. Search for all occurrences
  kGrid | Coordinate values will be moved using the current density solver. Search for all occurrences

## Constructor & Destructor Documentation

MFnFluid | ( | MObject & | object,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:

  [in] | object | The MObject to attach the function set to
  [out] | ReturnStatus | the return status

Status Codes:
  - MS::kSuccess if the function set is successfully attached
  - MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

MFnFluid | ( | const MDagPath & | object,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Constructor.

Class constructor that initializes the function set to the given constant MDagPath object.

Parameters:

  [in] | object | The const MDagPath to attach the function set to
  [out] | ReturnStatus | The return status

Status Codes:
  - MS::kSuccess if the function set is successfully attached
  - MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

MFnFluid | ( | const MObject & | object,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:

  [in] | object | The MObject to attach the function set to
  [out] | ReturnStatus | the return status

Status Codes:
  - MS::kSuccess if the function set is successfully attached
  - MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

## Member Function Documentation

MFn::Type type | ( |  | ) | const `[virtual]`

Search for all occurrences

Function set type.

Return the class type : MFn::kFluid.

Reimplemented from MFnDagNode.

const char * className | ( |  | ) | const `[protected, virtual]`

Search for all occurrences

Class name.

Return the class name : "MFnFluid".

Reimplemented from MFnDagNode.

MObject create3D | ( | unsigned int | Xres,
|  | unsigned int | Yres,
|  | unsigned int | Zres,
|  | double | Xdim,
|  | double | Ydim,
|  | double | Zdim,
|  | MObject | parent = `MObject::kNullObj`,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Search for all occurrences

Creates a fluid object from the specified data and sets this function set to operate on the new fluid object.

The parent argument is used to specify the DAG parent of the new fluid. If parent is NULL then a new transform will be created and returned which will be the parent for the new fluid shape. The new transform will be added to the DAG.

If parent is a DAG node then the new fluid will be returned and the parent passed in will become the new node's parent.

Parameters:

  [in] | Xres | number of fluid grid cells in the x dimension
  [in] | Yres | number of fluid grid cells in the y dimension
  [in] | Zres | number of fluid grid cells in the z dimension
  [in] | Xdim | object space size in the x dimension
  [in] | Ydim | object space size in the y dimension
  [in] | Zdim | object space size in the z dimension
  [in] | parent | specifies what to do with the new fluid object. If a DAG object or NULL is given then a transform will be created for the new fluid shape and placed under the specified (optional)parent.
  [out] | ReturnStatus | Status code

Returns:
  - If parent is NULL then the transform for this fluid shape is returned
  - If parent is a DAG object then the new fluid shape is returned

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kValueOutOfRange A grid cell resolution or dimension parameter is invalid.
  - MS::kFailure An object error has occurred.

MObject create2D | ( | unsigned int | Xres,
|  | unsigned int | Yres,
|  | double | Xdim,
|  | double | Ydim,
|  | MObject | parent = `MObject::kNullObj`,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Search for all occurrences

Creates a fluid object from the specified data and sets this function set to operate on the new fluid object.

The parent argument is used to specify the DAG parent of the new fluid. If parent is NULL then a new transform will be created and returned which will be the parent for the new fluid shape. The new transform will be added to the DAG.

If parent is a DAG node then the new fluid will be returned and the parent passed in will become the new node's parent.

Parameters:

  [in] | Xres | number of fluid grid cells in the x dimension
  [in] | Yres | number of fluid grid cells in the y dimension
  [in] | Xdim | object space size in the x dimension
  [in] | Ydim | object space size in the y dimension
  [in] | parent | specifies what to do with the new fluid object. If a DAG object or NULL is given then a transform will be created for the new fluid shape and placed under the specified (optional)parent.
  [out] | ReturnStatus | Status code

Returns:
  - If parent is NULL then the transform for this fluid shape is returned
  - If parent is a DAG object then the new fluid shape is returned

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kValueOutOfRange A grid cell resolution or dimension parameter is invalid.
  - MS::kFailure An object error has occurred.

MStatus getResolution | ( | unsigned int & | Xres,
|  | unsigned int & | Yres,
|  | unsigned int & | Zres
| ) |  | const

Search for all occurrences

Gets the resolution of the fluid.

The resolution gives the number of cells in the fluid grid in each direction.

Parameters:

  [out] | Xres | storage for returning the number of fluid grid cells in the x dimension
  [out] | Yres | storage for returning the number of fluid grid cells in the y dimension
  [out] | Zres | storage for returning the number of fluid grid cells in the z dimension

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

Examples:
  simpleFluidEmitter.cpp.

MStatus getResolution | ( | unsigned int & | Xres,
|  | unsigned int & | Yres
| ) |  | const

Search for all occurrences

Gets the resolution of the fluid.

The resolution gives the number of cells in the fluid grid in each direction.

Parameters:

  [out] | Xres | storage for returning the number of fluid grid cells in the x dimension
  [out] | Yres | storage for returning the number of fluid grid cells in the y dimension

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus getDimensions | ( | double & | Xdim,
|  | double & | Ydim,
|  | double & | Zdim
| ) |  | const

Search for all occurrences

Gets the dimensions of the fluid.

The dimensions give the object space size of the fluid object in each direction.

Parameters:

  [out] | Xdim | storage for returning the dimension of the fluid in x
  [out] | Ydim | storage for returning the dimension of the fluid in y
  [out] | Zdim | storage for returning the dimension of the fluid in z

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

Examples:
  simpleFluidEmitter.cpp.

MStatus setSize | ( | unsigned int | Xres,
|  | unsigned int | Yres,
|  | unsigned int | Zres,
|  | double | Xdim,
|  | double | Ydim,
|  | double | Zdim,
|  | bool | resample
| ) |  |

Search for all occurrences

Sets the size and resolution of the grid.

The resolution parameters control the number of cells in the fluid grid and the dimension parameters set the size of the fluid shape in object space.

Parameters:

  [in] | Xres | number of fluid grid cells in the x dimension
  [in] | Yres | number of fluid grid cells in the y dimension
  [in] | Zres | number of fluid grid cells in the z dimension
  [in] | Xdim | object space size in the x dimension
  [in] | Ydim | object space size in the y dimension
  [in] | Zdim | object space size in the z dimension
  [in] | resample | true if the previous contents of the grid should be scaled to fit the new size by resampling the previous data at the new resolution

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kValueOutOfRange A grid cell resolution or dimension parameter is invalid.
  - MS::kFailure An object error has occurred. This can occur if this is called on a 2D fluid

MStatus setSize | ( | unsigned int | Xres,
|  | unsigned int | Yres,
|  | double | Xdim,
|  | double | Ydim,
|  | bool | resample
| ) |  |

Search for all occurrences

Sets the size and resolution of the grid.

The resolution parameters control the number of cells in the fluid grid and the dimension parameters set the size of the fluid shape in object space.

Parameters:

  [in] | Xres | number of fluid grid cells in the x dimension
  [in] | Yres | number of fluid grid cells in the y dimension
  [in] | Xdim | object space size in the x dimension
  [in] | Ydim | object space size in the y dimension
  [in] | resample | true if the previous contents of the grid should be scaled to fit the new size by resampling the previous data at the new resolution

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kValueOutOfRange A grid cell resolution or dimension parameter is invalid.
  - MS::kFailure An object error has occurred. This can occur if this is called on a 2D fluid

unsigned int gridSize | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

Returns the number of elements in the grid.

This is equal to (x resolution * y resolution * z resolution). This routine is provided as a convenience to be used with the methods that give direct access to the fluid data. This gives the upper bound on the arrays. This size applies to all grids except for the 3 velocity grids.

Parameters:

  [out] | ReturnStatus | Status code.

Returns:
  The number of elements.

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus velocityGridSizes | ( | int & | xsize,
|  | int & | ysize,
|  | int & | zsize
| ) |  |

Search for all occurrences

Returns the number of elements in the velocity grids.

X velocity size = (x resolution+1 * y resolution * z resolution). Y velocity size = (x resolution * y resolution+1 * z resolution). Z velocity size = (x resolution * y resolution * z resolution+1).

This routine is provided as a convenience to be used with the methods that give direct access to the velocity grids.

Parameters:

  [out] | xsize | storage for the x velocity grid size
  [out] | ysize | storage for the y velocity grid size
  [out] | zsize | storage for the z velocity grid size

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.

float * falloff | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

This method returns a pointer to the storage for the falloff data in the fluid.

The size of this array can be obtained using the "gridSize" call.

The returned pointer points to an array of float values, each one representing the falloff value in a cell of the fluid grid. To get the array index corresponding to a cell index (x,y,z), use the "index" helper method.

If you modify the data via the pointer returned, you must call the "updateGrid" call or you will not see your changes.

Values from the falloff grid are used when the fluid's Falloff Shape attribute is set to "Grid". This mode allows users to specify arbitrary falloff values between 0 and 1 at each grid cell. At render time, the shaded opacity values of the fluid will be multiplied by the interpolated falloff grid value raised to the power of 1/(1-ed), where "ed" is the value of the fluid's "edgeDropoff" attribute. When edgeDropoff=0, the opacity multiplier is 1, and when edgeDropoff is 1, the opacity multiplier is 0. Assuming that falloff grid values are in the range [0,1], raising the edge dropoff value from 0 to 1 will cause the fluid opacity to smoothly fall off towards complete transparency.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  Pointer to the float data of the grid

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's falloff mode is set to kNone

Examples:
  simpleFluidEmitter.cpp.

float * density | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

This method returns a pointer to the storage for the density data in the fluid.

The size of this array can be obtained using the "gridSize" call.

The pointer returned points to an array of float values, each one representing the density value in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method.

If you modify the data via the pointer returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  Pointer to the density data of the grid

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's density mode is set to kNone

MStatus getVelocity | ( | float *& | Xvel,
|  | float *& | Yvel,
|  | float *& | Zvel
| ) |  |

Search for all occurrences

This method returns pointers to the storage for the velocity data in the fluid.

The size of these arrays can be obtained using the "gridSize" call.

Each of the pointers returned points to an array of float values, each value representing the velocity in a cell of the fluid grid . The three arrays contain the x components, y components, and z components of the velocity respectively.

The grid sizes are different for each of the velocity grids. The Xvel grid is one larger in X, the Yvel in Y, the Zvel in Z. This is because the velocity components are stored at the voxel face centers, not at the voxel centers. The index methods that specify the resolutions explicitly should be used for the velocity grids.

If you modify the data via the pointers returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | Xvel | storage for returning a pointer to the x components of the velocity values in the grid
  [out] | Yvel | storage for returning a pointer to the y components of the velocity values in the grid
  [out] | Zvel | storage for returning a pointer to the z components of the velocity values in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's velocity mode is set to kNone

float * pressure | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

This method returns a pointer to the storage for the pressure data in the fluid.

The size of this array can be obtained using the "gridSize" call. Note that the pressure data only exists if the velocity method is kStaticGrid or kDynamicGrid

The pointer returned points to an array of float values, each one representing the pressure value in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method.

If you modify the data via the pointer returned, you must call the "updateGrid" call or you will not see your changes. Note that the pressure data is an output of the velocity calculation. if you modify the pressure grid and the velocity grid is dynamic, your changes will be replaced after the next fluid evaluation.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  Pointer to the pressure data of the grid

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's velocity mode is set to kNone or kGradient

float * temperature | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

This method returns a pointer to the storage for the temperature data in the fluid.

The size of this array can be obtained using the "gridSize" call.

The pointer returned points to an array of float values, each one representing the temperature value in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method.

If you modify the data via the pointer returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  Pointer to the temperature data of the grid

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's temperature mode is set to kNone

float * fuel | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

This method returns a pointer to the storage for the fuel data in the fluid.

The size of this array can be obtained using the "gridSize" call.

The pointer returned points to an array of float values, each one representing the fuel value in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method.

If you modify the data via the pointer returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  Pointer to the fuel data of the grid

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's fuel method is set to kNone

MStatus getCoordinates | ( | float *& | u,
|  | float *& | v,
|  | float *& | w
| ) |  |

Search for all occurrences

This method returns pointers to the storage for the uvw coordinate data in the fluid.

The size of these arrays can be obtained using the "gridSize" call. The uvw values supply the 3D texture mapping coordinates for each cell.

Each of the pointers returned points to an array of float values, each value representing the u, v, or w value in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method. The three arrays contain the u values, v values, and w values of the texture coordinates respectively.

For a 2D fluid, a NULL pointer will be returned for the w array.

If you modify the data via the pointers returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | u | storage for returning a pointer to the u values in the grid
  [out] | v | storage for returning a pointer to the v values in the grid
  [out] | w | storage for returning a pointer to the w values in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus getColors | ( | float *& | r,
|  | float *& | g,
|  | float *& | b
| ) |  |

Search for all occurrences

This method returns pointers to the storage for the color data in the fluid.

The size of these arrays can be obtained using the "gridSize" call.

Each of the pointers returned points to an array of float values, each value representing the color in a cell of the fluid grid. To get the index of in the array for a cell at a given (x, y, z) use the "index" helper method. The three arrays contain the r components, g components, and b components of the color respectively.

If you modify the data via the pointers returned, you must call the "updateGrid" call or you will not see your changes.

Parameters:

  [out] | r | storage for returning a pointer to the red components of the color values in the grid
  [out] | g | storage for returning a pointer to the green components of the color values in the grid
  [out] | b | storage for returning a pointer to the blue components of the color values in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred. This may occur if the fluid's color mode is set to kNone

MStatus setFalloffMode | ( | MFnFluid::FalloffMethod | method | ) |

Search for all occurrences

Set the modes by which the shader falloff values in the grid are determined.

If the falloff grid is enabled, its values must be set by the user.

The method parameter may have the following values:

- kNoFalloffGrid A constant value of 0.0 is used.
- kStaticFalloffGrid Values in the grid are static

Parameters:

  [in] | method | method for determining the falloff value in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getFalloffMode | ( | MFnFluid::FalloffMethod & | method | ) |

Search for all occurrences

Get the modes by which the falloff values in the grid are determined.

If the falloff grid is enabled, its values must be set by the user.

The method parameter may return the following values:

- kNoFalloffGrid the shaders color is used
- kStaticFalloffGrid Values in the grid are static

Parameters:

  [out] | method | storage for returning the method by which the falloff value in the grid is determined

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setDensityMode | ( | MFnFluid::FluidMethod | method,
|  | MFnFluid::FluidGradient | gradient
| ) |  |

Search for all occurrences

Set the modes by which the density values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may have the following values:

- kZero sets the density to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method is set to be kGradient, then the gradient argument is also used. This deterines how a gradient is applied to the volume. The possible values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [in] | method | method for determining the fluid density in the grid
  [in] | gradient | gradient type, only used if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getDensityMode | ( | MFnFluid::FluidMethod & | method,
|  | MFnFluid::FluidGradient & | gradient
| ) |  |

Search for all occurrences

Get the modes by which the density values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kZero sets the density to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method returns kGradient, then the gradient type is also returned. This deterines how a gradient is applied to the volume. The possible return values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [out] | method | storage for returning the method by which the fluid density in the grid is determined
  [out] | gradient | storage for returning the gradient type, which is only relevant if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setVelocityMode | ( | MFnFluid::FluidMethod | method,
|  | MFnFluid::FluidGradient | gradient
| ) |  |

Search for all occurrences

Set the modes by which the velocity values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may have the following values:

- kZero sets the velocity to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method is set to be kGradient, then the gradient argument is also used. This deterines how a gradient is applied to the volume. The possible values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [in] | method | method for determining the fluid velocity in the grid
  [in] | gradient | gradient type, only used if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getVelocityMode | ( | MFnFluid::FluidMethod & | method,
|  | MFnFluid::FluidGradient & | gradient
| ) |  |

Search for all occurrences

Get the modes by which the velocity values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kZero sets the velocity to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method returns kGradient, then the gradient type is also returned. This deterines how a gradient is applied to the volume. The possible return values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [out] | method | storage for returning the method by which the fluid velocity in the grid is determined
  [out] | gradient | storage for returning the gradient type, which is only relevant if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setTemperatureMode | ( | MFnFluid::FluidMethod | method,
|  | MFnFluid::FluidGradient | gradient
| ) |  |

Search for all occurrences

Set the modes by which the temperature values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may have the following values:

- kZero sets the temperature to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method is set to be kGradient, then the gradient argument is also used. This deterines how a gradient is applied to the volume. The possible values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [in] | method | method for determining the fluid temperature in the grid
  [in] | gradient | gradient type, only used if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getTemperatureMode | ( | MFnFluid::FluidMethod & | method,
|  | MFnFluid::FluidGradient & | gradient
| ) |  |

Search for all occurrences

Get the modes by which the temperature values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kZero sets the temperature to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method returns kGradient, then the gradient type is also returned. This deterines how a gradient is applied to the volume. The possible return values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [out] | method | storage for returning the method by which the fluid temperature in the grid is determined
  [out] | gradient | storage for returning the gradient type, which is only relevant if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setFuelMode | ( | MFnFluid::FluidMethod | method,
|  | MFnFluid::FluidGradient | gradient
| ) |  |

Search for all occurrences

Set the modes by which the fuel values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation. The fuel value for a cell can be thought of as the amount of fuel contained in the cell that will be consumed during the simulation.

The method parameter may have the following values:

- kZero sets the fuel to zero across the volume
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

Note that kStatic is not an option for the fuel mode. A static grid of fuel values would not make sense as the solver needs to use up the fuel during the simulation.

If the method is set to be kGradient, then the gradient argument is also used. This deterines how a gradient is applied to the volume. The possible values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [in] | method | method for determining the fluid fuel in the grid
  [in] | gradient | gradient type, only used if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getFuelMode | ( | MFnFluid::FluidMethod & | method,
|  | MFnFluid::FluidGradient & | gradient
| ) |  |

Search for all occurrences

Get the modes by which the fuel values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kZero sets the fuel values to zero across the volume
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver
- kGradient ramps the value based on the gradient setting (see below)

If the method returns kGradient, then the gradient type is also returned. This deterines how a gradient is applied to the volume. The possible return values are as follows:

- kConstant value is set to one across the volume
- kXGradient ramp the value from zero to one along the X axis
- kYGradient ramp the value from zero to one along the Y axis
- kZGradient ramp the value from zero to one along the Z axis
- kNegXGradient ramp the value from one to zero along the X axis
- kNegYGradient ramp the value from one to zero along the Y axis
- kNegZGradient ramp the value from one to zero along the Z axis
- kCenterGradient ramps the value from one at the center to zero at the edges

Parameters:

  [out] | method | storage for returning the method by which the fluid fuel values in the grid is determined
  [out] | gradient | storage for returning the gradient type, which is only relevant if the method is kGradient

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setCoordinateMode | ( | MFnFluid::CoordinateMethod | method | ) |

Search for all occurrences

Set the modes by which the UVW coordinate values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may have the following values:

- kFixed values are equal the object space coordinates
- kGrid coordinate values will be moved using the current density solver

Parameters:

  [in] | method | method for determining the fluid UVW coordinates in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getCoordinateMode | ( | MFnFluid::CoordinateMethod & | method | ) |

Search for all occurrences

Get the modes by which the UVW coordinates values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kFixed values are equal the object space coordinates
- kGrid coordinate values will be moved using the current density solver

Parameters:

  [out] | method | storage for returning the method by which the fluid coordinate values in the grid is determined

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus setColorMode | ( | MFnFluid::ColorMethod | method | ) |

Search for all occurrences

Set the modes by which the color values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may have the following values:

- kZero the shaders color is used
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver

Parameters:

  [in] | method | method for determining the fluid color in the grid

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kInvalidParameter An enum value that was passed in is invalid
  - MS::kFailure An object error has occurred.

MStatus getColorMode | ( | MFnFluid::ColorMethod & | method | ) |

Search for all occurrences

Get the modes by which the color values in the grid are determined.

The values may be set by the user in various ways, or they may be computed as part of a simulation.

The method parameter may return the following values:

- kZero the shaders color is used
- kStaticGrid values in the grid are static
- kDynamicGrid values in the grid come from a dynamic solver

Parameters:

  [out] | method | storage for returning the method by which the fluid color in the grid is determined

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus getForceAtPoint | ( | const MPointArray & | point,
|  | const MVectorArray & | velocity,
|  | const MDoubleArray & | mass,
|  | MVectorArray & | force,
|  | double | deltaTime = `1.0 / 24.0`
| ) |  |

Search for all occurrences

Compute the force of the fluid as a field on an array of points, given their position, velocity, and mass.

This method uses MPointArray to represent the positions of points. If a point instance is in a rational form or a homogenous form, you should reset it to be in the cartesian form P(x, y, z, 1).

Parameters:

  [in] | point | array of positions for each point.
  [in] | velocity | array of velocities for each point. If the length of the velocity array is 0, a velocity of 0.0 is assumed for all the points.
  [in] | mass | array of mass values for each point. If the length of the mass array is 0, a mass of 1.0 is assumed for all the points.
  [out] | force | output array of forces applied to each point. If the length of the force array supplied is 0, the array is automatically resized. If the contents of the force array contains data, the computed force is added to the supplied data. This can be useful to accumulate forces of multiple fields.
  [in] | deltaTime | time increment in seconds. Default is (1.0 / 24.0 fps).

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

MStatus getForceAtPoint | ( | const MVectorArray & | point,
|  | const MVectorArray & | velocity,
|  | const MDoubleArray & | mass,
|  | MVectorArray & | force,
|  | double | deltaTime = `1.0 / 24.0`
| ) |  |

Search for all occurrences

Compute the force of a field on an array of points, given their position, velocity, and mass.

Note that only the Air and Vortex fields require a time increment to compute forces, all other fields will igonore this argument.

This method uses MVectorArray to represent the positions of a point.

Parameters:

  [in] | point | array of positions for each point.
  [in] | velocity | array of velocities for each point. If the length of the velocity array is 0, a velocity of 0.0 is assumed for all the points. Note the velocity array is a requirement for the Air and Drag fields to compute forces.
  [in] | mass | array of mass values for each point. If the length of the mass array is 0, a mass of 1.0 is assumed for all the points.
  [out] | force | output array of forces applied to each point. If the length of the force array supplied is 0, the array is automatically resized. If the contents of the force array contains data, the computed force is added to the supplied data. This can be useful to accumulate forces of multiple fields.
  [in] | deltaTime | time increment in seconds for usage with the Air and Vortex fields. Default is (1.0 / 24.0 fps).

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

bool toGridIndex | ( | const MPoint & | objectSpacePoint,
|  | int3 & | gridCoords,
|  | MStatus * | status = `NULL`
| ) |  |

Search for all occurrences

For the given point in object space, get the grid indices of the voxel that it happens to lie in.

If the point is outside the fluid, the method returns false, and the indices should not be used.

Parameters:

  [in] | objectSpacePoint | an object space location
  [out] | gridCoords | the voxel indices, if the point falls inside a voxel
  [out] | status | Status code

Returns:
  True if the point is inside the fluid, false otherwise

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

Examples:
  simpleFluidEmitter.cpp.

MStatus voxelCenterPosition | ( | int | xi,
|  | int | yi,
|  | int | zi,
|  | MPoint & | objectSpacePoint
| ) |  |

Search for all occurrences

For the given voxel, get the location of the center in object space.

If the voxel indices are not valid, the point may not be set to a valid point

Parameters:

  [in] | xi | the voxel x index
  [in] | yi | the voxel y index
  [in] | zi | the voxel z index
  [out] | objectSpacePoint | the object space location

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure The voxel index was out of range, or an object error has occurred.

MStatus updateGrid | ( |  | ) |

Search for all occurrences

Tells the fluid shape that the contents of the fluid grid has changed.

It is necessary to call this routine after modifying internal fluid data via a pointer recieved from any of the access routines in this function set. Failure to call this will result in the fluid not drawing with your changes.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The method was successful.
  - MS::kFailure An object error has occurred.

void emitIntoArrays | ( | float | val,
|  | int | x,
|  | int | y,
|  | int | z,
|  | float | density,
|  | float | heat,
|  | float | fuel,
|  | bool | doColor,
|  | const MColor & | emitColor
| ) |  |

Search for all occurrences

Use this method to add density, heat, fuel, and/or color to a particular voxel of a fluid.

Parameters:

  [in] | val | multiplier applied to the specified density, heat, and fuel values.
  [in] | x | voxel index in x
  [in] | y | voxel index in y
  [in] | z | voxel index in z
  [in] | density | amount of density to add to the voxel
  [in] | heat | amount of heat to add to the voxel
  [in] | fuel | amount of fuel to add to the voxel
  [in] | doColor | if true, then color specified by "emitColor" will be blended into the voxel's current color, with the blend coefficients being determined by the amount of density that is being added to the voxel.
  [in] | emitColor | color to be blended into the voxel.

Examples:
  simpleFluidEmitter.cpp.

int index | ( | int | xi,
|  | int | yi
| ) |  |

Search for all occurrences

This is a utility routine for finding the index of a cell in an array of fluid data.

The data in the fluid shape, such as color and density are passed back as single dimensional arrays of numeric values. This method converts three dimensional coordinates of a cell into the index value that refers the cell's value in the single dimensional array.

Note that no bounds checking is performed.

Parameters:

  [in] | xi | index in x
  [in] | yi | index in y

Returns:
  Index in the single dimensional array

Examples:
  simpleFluidEmitter.cpp.

int index | ( | int | xi,
|  | int | yi,
|  | int | zi
| ) |  |

Search for all occurrences

This is a utility routine for finding the index of a cell in an array of fluid data.

The data in the fluid shape, such as color and density are passed back as single dimensional arrays of numeric values. This method converts three dimensional coordinates of a cell into the index value that refers the cell's value in the single dimensional array.

Note that no bounds checking is performed.

Parameters:

  [in] | xi | index in x
  [in] | yi | index in y
  [in] | zi | index in z

Returns:
  Index in the single dimensional array

void index | ( | int | index,
|  | int & | xi,
|  | int & | yi,
|  | int & | zi
| ) |  |

Search for all occurrences

This is a utility routine for finding the coordinates of a cell in an array of fluid data given the index.

The data in the fluid shape, such as color and density are passed back as single dimensional arrays of numeric values. This method converts the index value that refers to a cell's value in the single dimensional array into the three dimensional coordinates of the cell.

Note that no bounds checking is performed.

Parameters:

  [in] | index | index to convert into coordinates
  [out] | xi | storage for the index in x
  [out] | yi | storage for the index in y
  [out] | zi | storage for the index in z

int index | ( | int | xi,
|  | int | yi,
|  | int | zi,
|  | int | xres,
|  | int | yres,
|  | int | zres
| ) |  |

Search for all occurrences

This is a utility routine for finding the index of a cell given the X, Y and Z resolutions.

This is intended for use primarily with the velocity arrays, where the resolutions are different for each array. The X velocity array is one bigger in X, etc.

This method converts three dimensional coordinates of a cell into the index value that refers the cell's value in the single dimensional array.

Note that no bounds checking is performed.

Parameters:

  [in] | xi | index in x
  [in] | yi | index in y
  [in] | zi | index in z
  [in] | xres | resolution in x
  [in] | yres | resolution in y
  [in] | zres | resolution in z

Returns:
  Index in the single dimensional array

void index | ( | int | index,
|  | int | xres,
|  | int | yres,
|  | int | zres,
|  | int & | xi,
|  | int & | yi,
|  | int & | zi
| ) |  |

Search for all occurrences

This is a utility routine for finding the coordinates of a cell given the index, and the X, Y and Z resolutions.

This is intended for use primarily with the velocity arrays, where the resolutions are different for each array. The X velocity array is one bigger in X, etc.

This method converts the index value that refers to a cell's value in the single dimensional array into the three dimensional coordinates of the cell.

Note that no bounds checking is performed.

Parameters:

  [in] | index | index to convert into coordinates
  [in] | xres | resolution in x
  [in] | yres | resolution in y
  [in] | zres | resolution in z
  [out] | xi | storage for the index in x
  [out] | yi | storage for the index in y
  [out] | zi | storage for the index in z

MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid
MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid MFnFluid