#include <MnParticle.h>
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 () | |
Default constructor. More... | |
virtual | ~MnParticle () |
The class destructor. | |
MStatus | createNParticle () |
Creates the underlying Maya TnParticle and sets this class to wrap it. More... | |
MStatus | setTopology (const int numPoints) |
Sets the topology of the underlying N Object. More... | |
MStatus | setPositions (const MFloatPointArray &positions, bool startFrame=true) |
Sets the positions of the vertices of the underlying nParticle object. More... | |
MStatus | setVelocities (const MFloatPointArray &velocities) |
Sets the velocities of the vertices of the underlying nParticle object. More... | |
MStatus | setThickness (float radius) |
sets a radius on each point collision purposes. More... | |
MStatus | setThickness (float *radius) |
sets a radius (thickness) on a per point basis for collision purposes. More... | |
MStatus | setInverseMass (float invMass) |
sets the mass for every particle More... | |
MStatus | setInverseMass (float *invMass) |
sets the mass on a per point basis More... | |
MStatus | setBounce (float bounce) |
sets the bounce for every particle More... | |
MStatus | setBounce (float *bounce) |
sets the bounce on a per point basis for these particles More... | |
MStatus | setFriction (float friction) |
sets the friction for every particle More... | |
MStatus | setFriction (float *friction) |
sets the friction on a per point basis for these particles More... | |
MStatus | setDamping (float damping) |
sets the damping for every particle More... | |
MStatus | setDamping (float *damping) |
sets the damping on a per point basis for these particles More... | |
MStatus | setDisableGravity (const bool b) |
Sets whether gravity will affect this object. More... | |
MStatus | setLiquidSimulation (const bool b) |
Sets whether this object will solve as a liquid. More... | |
MStatus | setIncompressibility (float incompressibility) |
sets the incompressibility More... | |
MStatus | setRestDensity (float restDensity) |
sets the rest density for every particle More... | |
MStatus | setLiquidRadiusScale (float liquidRadiusScale) |
sets the liquidRadiusScale for every particle More... | |
MStatus | setViscosity (float viscosity) |
sets the viscosity for every particle More... | |
MStatus | setViscosity (float *viscosity) |
sets the viscosity on a per point basis for these particles More... | |
MStatus | setSurfaceTension (float surfaceTension) |
sets the surfaceTension for every particle More... | |
MStatus | setSurfaceTension (float *surfaceTension) |
sets the surfaceTension on a per point basis for these particles More... | |
MStatus | setMaxIterations (const int it) |
Sets the number of iterations the solver will perform on various dynamic properties like drag, damping, stretch and bend. More... | |
MStatus | setMaxSelfCollisionIterations (const int it) |
Sets the number of iterations the solver will perform for self collisions on this object. More... | |
MStatus | setSelfCollisionSoftness (float softness) |
This allows one to lower the repulsive force of self collisions such that some interpenetration within the collide width is allowed. More... | |
MStatus | setDragAndLift (float drag, float lift) |
Sets the drag and lift values for the nParticle. More... | |
MStatus | setCollide (const bool b) |
Sets whether collisions will affect this object. More... | |
MStatus | setSelfCollide (const bool b) |
Sets whether self collisions will affect this object. More... | |
MStatus | setSelfCollideWidth (float width) |
Sets the self collision width. More... | |
MStatus | getNumVertices (unsigned int &numVerts) const |
Returns the number of vertices in the underlying nParticle. More... | |
MStatus | getPositions (MFloatPointArray &positions) const |
gets the positions of the points of the underlying N Object. More... | |
MStatus | getVelocities (MFloatPointArray &velocities) const |
gets the velocities of the points of the underlying nParticle object. More... | |
MStatus | getThickness (MFloatArray &radius) const |
gets the radii of the points of the underlying N particle object. More... | |
MStatus | getInverseMass (MFloatArray &inverseMass) const |
gets the inverseMass of the points of the underlying N particle object. More... | |
MStatus | getBounce (MFloatArray &bounce) const |
gets the Bounce of the points of the underlying N particle object. More... | |
MStatus | getFriction (MFloatArray &friction) const |
gets the friction of the points of the underlying N particle object. More... | |
Public Member Functions inherited from MnObject | |
MnObject () | |
Default constructor. More... | |
virtual | ~MnObject () |
The class destructor. | |
Friends | |
class | MFnNObjectData |
MnParticle | ( | ) |
Default constructor.
The instance is set to contain nothing.
MStatus createNParticle | ( | ) |
Creates the underlying Maya TnParticle and sets this class to wrap it.
MStatus 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
[in] | numPoints | number of particles |
MStatus setPositions | ( | const MFloatPointArray & | positions, |
bool | startFrame = true |
||
) |
Sets the positions of the vertices of the underlying nParticle object.
[in] | positions | the array containing the position information |
[in] | startFrame | whether this information represents the state of the object at the start frame. |
MStatus setVelocities | ( | const MFloatPointArray & | velocities | ) |
Sets the velocities of the vertices of the underlying nParticle object.
[in] | velocities | the array containing the velocity information |
MStatus setThickness | ( | float | radius | ) |
sets a radius on each point collision purposes.
The bigger the radius/thickness, the more easily things collide.
[in] | radius | the radius to set |
MStatus setThickness | ( | float * | radius | ) |
sets a radius (thickness) on a per point basis for collision purposes.
The bigger the radius, the more easily things collide.
[in] | radius | the radius to set |
MStatus setInverseMass | ( | float | invMass | ) |
sets the mass for every particle
[in] | invMass | the inverse of the mass. A value of 0 means an infinitely heavy object. |
MStatus setInverseMass | ( | float * | invMass | ) |
sets the mass on a per point basis
[in] | invMass | the inverse of the mass. A value of 0 means an infinitely heave object. |
MStatus setBounce | ( | float | bounce | ) |
sets the bounce for every particle
[in] | bounce | value of bounce to set |
MStatus setBounce | ( | float * | bounce | ) |
sets the bounce on a per point basis for these particles
[in] | bounce | value of bounce to set |
MStatus setFriction | ( | float | friction | ) |
sets the friction for every particle
[in] | friction | the friction to set |
MStatus setFriction | ( | float * | friction | ) |
sets the friction on a per point basis for these particles
[in] | friction | the friction to set |
MStatus setDamping | ( | float | damping | ) |
sets the damping for every particle
[in] | damping | the damping value to set |
MStatus setDamping | ( | float * | damping | ) |
sets the damping on a per point basis for these particles
[in] | damping | the damping value to set |
MStatus setDisableGravity | ( | const bool | b | ) |
Sets whether gravity will affect this object.
[in] | b | whether to calculate gravity |
MStatus setLiquidSimulation | ( | const bool | b | ) |
Sets whether this object will solve as a liquid.
[in] | b | whether to calculate liquid |
MStatus setIncompressibility | ( | float | incompressibility | ) |
sets the incompressibility
[in] | incompressibility | the incompressibility value to set |
MStatus setRestDensity | ( | float | restDensity | ) |
sets the rest density for every particle
[in] | restDensity | the rest density value to set |
MStatus setLiquidRadiusScale | ( | float | liquidRadiusScale | ) |
sets the liquidRadiusScale for every particle
[in] | liquidRadiusScale | the liquidRadiusScale value to set |
MStatus setViscosity | ( | float | viscosity | ) |
sets the viscosity for every particle
[in] | viscosity | the viscosity value to set |
MStatus setViscosity | ( | float * | viscosity | ) |
sets the viscosity on a per point basis for these particles
[in] | viscosity | the viscosity value to set |
MStatus setSurfaceTension | ( | float | surfaceTension | ) |
sets the surfaceTension for every particle
[in] | surfaceTension | the surfaceTension value to set |
MStatus setSurfaceTension | ( | float * | surfaceTension | ) |
sets the surfaceTension on a per point basis for these particles
[in] | surfaceTension | the surfaceTension value to set |
MStatus 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.
[in] | it | number of iterations |
MStatus setMaxSelfCollisionIterations | ( | const int | it | ) |
Sets the number of iterations the solver will perform for self collisions on this object.
[in] | it | number of iterations |
MStatus 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.
[in] | softness | value to set. |
MStatus setDragAndLift | ( | float | drag, |
float | lift | ||
) |
Sets the drag and lift values for the nParticle.
[in] | drag | value of drag |
[in] | lift | value of lift |
MStatus setCollide | ( | const bool | b | ) |
Sets whether collisions will affect this object.
[in] | b | whether to calculate collision |
MStatus setSelfCollide | ( | const bool | b | ) |
Sets whether self collisions will affect this object.
[in] | b | whether to calculate self collision |
MStatus setSelfCollideWidth | ( | float | width | ) |
Sets the self collision width.
[in] | width | value to set |
MStatus getNumVertices | ( | unsigned int & | numVerts | ) | const |
Returns the number of vertices in the underlying nParticle.
[out] | numVerts | Number of vertices. |
MStatus getPositions | ( | MFloatPointArray & | positions | ) | const |
gets the positions of the points of the underlying N Object.
[out] | positions | the array will be filled with the positions. |
MStatus getVelocities | ( | MFloatPointArray & | velocities | ) | const |
gets the velocities of the points of the underlying nParticle object.
[out] | velocities | the array will be filled with the positions. |
MStatus getThickness | ( | MFloatArray & | radius | ) | const |
gets the radii of the points of the underlying N particle object.
[out] | radius | the array will be filled with the radii. |
MStatus getInverseMass | ( | MFloatArray & | inverseMass | ) | const |
gets the inverseMass of the points of the underlying N particle object.
[out] | inverseMass | the array will be filled with the inverse masses. |
MStatus getBounce | ( | MFloatArray & | bounce | ) | const |
gets the Bounce of the points of the underlying N particle object.
[out] | bounce | the array will be filled with the bounce. |
MStatus getFriction | ( | MFloatArray & | friction | ) | const |
gets the friction of the points of the underlying N particle object.
[out] | friction | the array will be filled with the friction. |