MnParticle Class Reference
[OpenMayaFX - API module for effects]

#include <MnParticle.h>
Inheritance diagram for MnParticle:
Inheritance graph
[legend]
Collaboration diagram for MnParticle:
Collaboration graph
[legend]

List of all members.


Detailed Description

Class for wrapping N cloth objects.

This class wraps the internal Maya representation of N cloth objects suitable for use with the Nucleus solver.


Public Member Functions

  MnParticle ()
virtual  ~MnParticle ()
MStatus  createNParticle ()
MStatus  setTopology (const int numPoints)
MStatus  setPositions (const MFloatPointArray &positions, bool startFrame=true)
MStatus  setVelocities (const MFloatPointArray &velocities)
MStatus  setThickness (float radius)
MStatus  setThickness (float *radius)
MStatus  setInverseMass (float invMass)
MStatus  setInverseMass (float *invMass)
MStatus  setBounce (float bounce)
MStatus  setBounce (float *bounce)
MStatus  setFriction (float friction)
MStatus  setFriction (float *friction)
MStatus  setDamping (float damping)
MStatus  setDamping (float *damping)
MStatus  setDisableGravity (const bool b)
MStatus  setLiquidSimulation (const bool b)
MStatus  setIncompressibility (float incompressibility)
MStatus  setRestDensity (float restDensity)
MStatus  setLiquidRadiusScale (float liquidRadiusScale)
MStatus  setViscosity (float viscosity)
MStatus  setViscosity (float *viscosity)
MStatus  setSurfaceTension (float surfaceTension)
MStatus  setSurfaceTension (float *surfaceTension)
MStatus  setMaxIterations (const int it)
MStatus  setMaxSelfCollisionIterations (const int it)
MStatus  setSelfCollisionSoftness (float softness)
MStatus  setDragAndLift (float drag, float lift)
MStatus  setCollide (const bool b)
MStatus  setSelfCollide (const bool b)
MStatus  setSelfCollideWidth (float width)
MStatus  getNumVertices (unsigned int &numVerts) const
MStatus  getPositions (MFloatPointArray &positions) const
MStatus  getVelocities (MFloatPointArray &velocities) const
MStatus  getThickness (MFloatArray &radius) const
MStatus  getInverseMass (MFloatArray &inverseMass) const
MStatus  getBounce (MFloatArray &bounce) const
MStatus  getFriction (MFloatArray &friction) const

Friends

class  MFnNObjectData

Constructor & Destructor Documentation

MnParticle::MnParticle (  ) 

Default constructor. The instance is set to contain nothing.

MnParticle::~MnParticle (  )  [virtual]

The class destructor.


Member Function Documentation

MStatus MnParticle::createNParticle (  ) 

Creates the underlying Maya TnParticle and sets this class to wrap it.

Returns:

MStatus MnParticle::setTopology ( const int  numPoints  ) 

Sets the topology of the underlying N Object. This must be called whenever the number of particles changes, before setting any particle properties

Parameters:
[in]  numPoints  number of particles
Returns:

MStatus MnParticle::setPositions ( const MFloatPointArray positions,
bool  startFrame = true  
)

Sets the positions of the vertices of the underlying N cloth object

Parameters:
[in]  positions  the array containing the position information
[in]  startFrame  whether this information represents the state of the object at the start frame.
Returns:

MStatus MnParticle::setVelocities ( const MFloatPointArray velocities  ) 

Sets the velocities of the vertices of the underlying Ncloth object

Parameters:
[in]  velocities  the array containing the velocity information
Returns:

MStatus MnParticle::setThickness ( float  radius  ) 

sets a radius on each point collision purposes. The bigger the radius/thickness, the more easily things collide.

Parameters:
[in]  radius  the radius to set
Returns:

MStatus MnParticle::setThickness ( float *  radius  ) 

sets a radius (thickness) on a per point basis for collision purposes. The bigger the radius, the more easily things collide.

Parameters:
[in]  radius  the radius to set
Returns:

MStatus MnParticle::setInverseMass ( float  invMass  ) 

sets the mass for every point in this mesh

Parameters:
[in]  invMass  the inverse of the mass. A value of 0 means an infinitely heave object.
Returns:

MStatus MnParticle::setInverseMass ( float *  invMass  ) 

sets the mass on a per point basis

Parameters:
[in]  invMass  the inverse of the mass. A value of 0 means an infinitely heave object.
Returns:

MStatus MnParticle::setBounce ( float  bounce  ) 

sets the bounce for every point in this mesh

Parameters:
[in]  bounce  value of bounce to set
Returns:

MStatus MnParticle::setBounce ( float *  bounce  ) 

sets the bounce on a per point basis in this mesh

Parameters:
[in]  bounce  value of bounce to set
Returns:

MStatus MnParticle::setFriction ( float  friction  ) 

sets the friction for every point in this mesh

Parameters:
[in]  friction  the friction to set
Returns:

MStatus MnParticle::setFriction ( float *  friction  ) 

sets the friction on a per point basis for this mesh

Parameters:
[in]  friction  the friction to set
Returns:

MStatus MnParticle::setDamping ( float  damping  ) 

sets the damping for every point in this mesh

Parameters:
[in]  damping  the damping value to set
Returns:

MStatus MnParticle::setDamping ( float *  damping  ) 

sets the damping on a per point basis in this mesh

Parameters:
[in]  damping  the damping value to set
Returns:

MStatus MnParticle::setDisableGravity ( const bool  b  ) 

Sets whether gravity will affect this object

Parameters:
[in]  b  whether to calculate gravity
Returns:

MStatus MnParticle::setLiquidSimulation ( const bool  b  ) 

Sets whether this object will solve as a liquid

Parameters:
[in]  b  whether to calculate liquid
Returns:

MStatus MnParticle::setIncompressibility ( float  incompressibility  ) 

sets the incompressibility

Parameters:
[in]  incompressibility  the incompressibility value to set
Returns:

MStatus MnParticle::setRestDensity ( float  restDensity  ) 

sets the rest density for every point in this mesh

Parameters:
[in]  restDensity  the rest density value to set
Returns:

MStatus MnParticle::setLiquidRadiusScale ( float  liquidRadiusScale  ) 

sets the liquidRadiusScale for every point in this mesh

Parameters:
[in]  liquidRadiusScale  the liquidRadiusScale value to set
Returns:

MStatus MnParticle::setViscosity ( float  viscosity  ) 

sets the viscosity for every point in this mesh

Parameters:
[in]  viscosity  the viscosity value to set
Returns:

MStatus MnParticle::setViscosity ( float *  viscosity  ) 

sets the viscosity on a per point basis in this mesh

Parameters:
[in]  viscosity  the viscosity value to set
Returns:

MStatus MnParticle::setSurfaceTension ( float  surfaceTension  ) 

sets the surfaceTension for every point in this mesh

Parameters:
[in]  surfaceTension  the surfaceTension value to set
Returns:

MStatus MnParticle::setSurfaceTension ( float *  surfaceTension  ) 

sets the surfaceTension on a per point basis in this mesh

Parameters:
[in]  surfaceTension  the surfaceTension value to set
Returns:

MStatus MnParticle::setMaxIterations ( const int  it  ) 

Sets the number of iterations the solver will perform on various dynamic properties like drag, damping, stretch and bend. Higher iterations take longer, and the primary use of this attribute is to keep things from locking up should high iteration values be requested.

Parameters:
[in]  it  number of iterations
Returns:

MStatus MnParticle::setMaxSelfCollisionIterations ( const int  it  ) 

Sets the number of iterations the solver will perform for self collisions on this object.

Parameters:
[in]  it  number of iterations
Returns:

MStatus MnParticle::setSelfCollisionSoftness ( float  softness  ) 

This allows one to lower the repulsive force of self collisions such that some interpenetration within the collide width is allowed. This can in some cases reduce jitter due to self collision with low selfCollideIterations. In general its use should be avoided, however.

Parameters:
[in]  softness  value to set.
Returns:

MStatus MnParticle::setDragAndLift ( float  drag,
float  lift  
)

Sets the drag and lift values for the cloth

Parameters:
[in]  drag  value of drag
[in]  lift  value of lift
Returns:

MStatus MnParticle::setCollide ( const bool  b  ) 

Sets whether collisions will affect this object

Parameters:
[in]  b  whether to calculate collision
Returns:

MStatus MnParticle::setSelfCollide ( const bool  b  ) 

Sets whether self collisions will affect this object

Parameters:
[in]  b  whether to calculate self collision
Returns:

MStatus MnParticle::setSelfCollideWidth ( float  width  ) 

Sets the self collision width

Parameters:
[in]  width  value to set
Returns:

MStatus MnParticle::getNumVertices ( unsigned int &  numVerts  )  const

Returns the number of vertices in the underlying nParticle

Parameters:
[out]  numVerts  Number of vertices.
Returns:

MStatus MnParticle::getPositions ( MFloatPointArray positions  )  const

gets the positions of the points of the underlying N Object.

Parameters:
[out]  positions  the array will be filled with the positions.
Returns:

MStatus MnParticle::getVelocities ( MFloatPointArray velocities  )  const

gets the velocities of the points of the underlying N cloth object.

Parameters:
[in]  velocities  the array will be filled with the positions.
Returns:

MStatus MnParticle::getThickness ( MFloatArray radius  )  const

gets the radii of the points of the underlying N particle object.

Parameters:
[in]  radius  the array will be filled with the radii.
Returns:

MStatus MnParticle::getInverseMass ( MFloatArray inverseMass  )  const

gets the inverseMass of the points of the underlying N particle object.

Parameters:
[in]  inverseMass  the array will be filled with the inverse masses.
Returns:

MStatus MnParticle::getBounce ( MFloatArray bounce  )  const

gets the Bounce of the points of the underlying N particle object.

Parameters:
[in]  bounce  the array will be filled with the bounce.
Returns:

MStatus MnParticle::getFriction ( MFloatArray friction  )  const

gets the friction of the points of the underlying N particle object.

Parameters:
[in]  friction  the array will be filled with the friction.
Returns:

Autodesk® Maya® 2011 © 1997-2010 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6