#include <MRampAttribute.h>
Create and manipulate ramp attributes.
A ramp attribute consists of a set of entries describing a curve which is used to map an input value onto an output value. Each entry consists of an input position ranging from 0 to 1, an output value that position maps onto, and an enumerator indicating the type of interpolation to use between that position and the next.
Currently two types of output values are a supported: a float, in which case the attribute is displayed as a curve in the Attribute Editor, or a color, in which case the attribute is displayed as a color gradient, similar to how a ramp texture node is displayed.
The preferred way of creating a ramp is to use the createRamp set of methods. These methods will initialize the newly-created ramp with input values.
A ramp must always have at least one entry. Ramp attributes created with the createCurveRamp and creatColorRamp methods will automatically be given a default entry at position 0.0 with a value of 0.0 or black, depending upon the ramp type.
Any attempt to delete the last of a ramp's entries will fail. This means that if you want to initialize a newly-created ramp attribute with a specific set of entries you must add at least one of your new entries first before deleting the default entry. Alternatively, you can modify the default entry to match one of your new entries and then add your remaining entries.
The setRamp set of methods can be used for setting existing ramps with new entries, current entries are automatically removed and replaced with the new ones. setRamp is perfect for initializing ramps created with the createCurveRamp and creatColorRamp.
Public Types | |
enum | MInterpolation { kNone = 0, kLinear = 1, kSmooth = 2, kSpline = 3 } |
Interpolation methods. More... | |
Public Member Functions | |
MRampAttribute () | |
Creates an emptry Ramp Attribute class. More... | |
MRampAttribute (const MRampAttribute &other) | |
Copy constructor operator. More... | |
MRampAttribute (const MPlug &obj, MStatus *ReturnStatus=nullptr) | |
Creates a new Ramp Attribute class. More... | |
MRampAttribute (const MObject &node, const MObject &attr, MStatus *ReturnStatus=nullptr) | |
Creates a new Ramp Attribute class. More... | |
MRampAttribute & | operator= (const MRampAttribute &other) |
Assignment operator. More... | |
~MRampAttribute () | |
Destructor. | |
unsigned int | getNumEntries (MStatus *ReturnStatus=nullptr) |
Gets the number of entries in the ramp attribute. More... | |
void | getEntries (MIntArray &indexes, MFloatArray &positions, MFloatArray &values, MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Gets all the entries in a ramp attribute. More... | |
void | getEntries (MIntArray &indexes, MFloatArray &positions, MColorArray &colors, MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Gets all the entries in a ramp attribute. More... | |
void | addEntries (MFloatArray &positions, MColorArray &values, MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Adds entries into a ramp attribute. More... | |
void | addEntries (MFloatArray &positions, MFloatArray &values, MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Adds entries into a ramp attribute. More... | |
void | deleteEntries (MIntArray &indexes, MStatus *ReturnStatus=nullptr) |
Deletes entries in the ramp attribute. More... | |
void | setColorAtIndex (MColor &color, unsigned int index, MStatus *ReturnStatus=nullptr) |
Sets the color of a given entry. More... | |
void | setValueAtIndex (float value, unsigned int index, MStatus *ReturnStatus=nullptr) |
Sets the value of a given entry. More... | |
void | setPositionAtIndex (float position, unsigned int index, MStatus *ReturnStatus=nullptr) |
Sets the position of a given entry. More... | |
void | setInterpolationAtIndex (MRampAttribute::MInterpolation interp, unsigned int index, MStatus *ReturnStatus=nullptr) |
Sets the interpolation of a given entry. More... | |
bool | isColorRamp (MStatus *ReturnStatus=nullptr) const |
Checks to see whether this ramp is a color ramp. More... | |
bool | isCurveRamp (MStatus *ReturnStatus=nullptr) const |
Checks to see whether this ramp is a curve ramp. More... | |
void | getColorAtPosition (float position, MColor &color, MStatus *ReturnStatus=nullptr) |
Gets the color at a position in the current evaluation context. More... | |
void | getValueAtPosition (float position, float &value, MStatus *ReturnStatus=nullptr) |
Gets the value at position in the current evaluation context. More... | |
void | sampleColorRamp (unsigned int numberOfSamples, MColorArray &colors, MStatus *ReturnStatus=nullptr) |
Perform a linear sampling of this color ramp at the current evaluation context and return the results. More... | |
void | sampleValueRamp (unsigned int numberOfSamples, MFloatArray &values, MStatus *ReturnStatus=nullptr) |
Perform a linear sampling of this curve ramp in the current evaluation context and return the results. More... | |
bool | hasIndex (unsigned int index, MStatus *ReturnStatus=nullptr) const |
Returns true if this ramp attribute has an entry defined with a given index. More... | |
MStatus | sort (bool ascending=true) |
Sort the ramp attribute entries by position in ascending or descending order, other arrays are sorted accordingly. More... | |
MStatus | pack () |
Change the indices numbering by re-ordering them from 0. More... | |
MStatus | setRamp (float value, float position=1.0f, MInterpolation interp=kLinear) |
Sets this ramp attribute with one entry defined from a float, position and interpolation value. More... | |
MStatus | setRamp (const MColor &color, float position=1.0f, MInterpolation interp=kLinear) |
Sets this ramp attribute with one entry defined from a color, position and interpolation value. More... | |
MStatus | setRamp (const MFloatArray &values, const MFloatArray &positions, const MIntArray &interps) |
Sets this ramp attribute with entries defined from a set of float, position and interpolation value arrays. More... | |
MStatus | setRamp (const MColorArray &values, const MFloatArray &positions, const MIntArray &interps) |
Sets this ramp attribute with entries defined from a set of color, position and interpolation value arrays. More... | |
void | getColorAtPosition (float position, MColor &color, MStatus *ReturnStatus, MDGContext &) |
This method is obsolete. More... | |
void | getValueAtPosition (float position, float &value, MStatus *ReturnStatus, MDGContext &) |
This method is obsolete. More... | |
void | sampleColorRamp (unsigned int numberOfSamples, MColorArray &colors, MStatus *ReturnStatus, MDGContext &) |
This method is obsolete. More... | |
void | sampleValueRamp (unsigned int numberOfSamples, MFloatArray &values, MStatus *ReturnStatus, MDGContext &) |
This method is obsolete. More... | |
Static Public Member Functions | |
static MObject | createCurveRamp (const MString &attrLongName, const MString &attrShortName, MStatus *ReturnStatus=nullptr) |
This function creates the curve ramp attribute. More... | |
static MObject | createColorRamp (const MString &attrLongName, const MString &attrShortName, MStatus *ReturnStatus=nullptr) |
This function creates the color ramp attribute. More... | |
static MObject | createRamp (const MString &attrLongName, const MString &attrShortName, const MObject &node, float val, float pos=1.f, MInterpolation interp=kLinear, MStatus *ReturnStatus=nullptr) |
Creates a new curve ramp attribute initialized with an entry defined from a float, position and interpolation value. More... | |
static MObject | createRamp (const MString &attrLongName, const MString &attrShortName, const MObject &node, const MColor &color, float pos=1.0f, MInterpolation interp=kLinear, MStatus *ReturnStatus=nullptr) |
Creates a new color ramp attribute initialized with one entry defined from a color, position and interpolation value. More... | |
static MObject | createRamp (const MString &attrLongName, const MString &attrShortName, const MObject &node, const MFloatArray &values, const MFloatArray &positions, const MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Creates a new curve ramp attribute initialized with entries defined from a set of float, position and interpolation value arrays. More... | |
static MObject | createRamp (const MString &attrLongName, const MString &attrShortName, const MObject &node, const MColorArray &colors, const MFloatArray &positions, const MIntArray &interps, MStatus *ReturnStatus=nullptr) |
Creates a new curve ramp attribute initialized with entries defined from a set of color, position and interpolation value arrays. More... | |
static const char * | className () |
Returns the name of this class. More... | |
enum MInterpolation |
OPENMAYA_MAJOR_NAMESPACE_OPEN MRampAttribute | ( | ) |
Creates an emptry Ramp Attribute class.
Initializes it as a null Object.
MRampAttribute | ( | const MRampAttribute & | other | ) |
Copy constructor operator.
Duplicates the given ramp attribute.
[in] | other | Ramp attribute to be copied |
MRampAttribute | ( | const MPlug & | obj, |
MStatus * | ReturnStatus = nullptr |
||
) |
Creates a new Ramp Attribute class.
If the plug is not of a ramp, then the constructor will return a failure.
[in] | obj | Plug of a ramp |
[out] | ReturnStatus | return status |
MRampAttribute | ( | const MObject & | node, |
const MObject & | attr, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Creates a new Ramp Attribute class.
If the node does not have that attribute then the constructor will return a failure. If the attribute is not of a ramp the constructor will also fail.
[in] | node | Node that contains a ramp attribute |
[in] | attr | The ramp attribute |
[out] | ReturnStatus | return status |
MRampAttribute & operator= | ( | const MRampAttribute & | other | ) |
Assignment operator.
Copies one ramp attribute to another.
[in] | other | Ramp attribute to be copied |
unsigned int getNumEntries | ( | MStatus * | ReturnStatus = nullptr | ) |
Gets the number of entries in the ramp attribute.
[out] | ReturnStatus | return status |
void getEntries | ( | MIntArray & | indices, |
MFloatArray & | positions, | ||
MFloatArray & | values, | ||
MIntArray & | interps, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Gets all the entries in a ramp attribute.
If the ramp is a color ramp, then this function will return a failure.
[out] | indices | unique values that specify each entry in the ramp |
[out] | positions | the positions of each entry (can range from 0 to 1) |
[out] | values | the values of the entries at each position (can range from 0 to 1) |
[out] | interps | array of MRampAttribute::MInterpolation values giving the interpolations of the entries at each position. |
[out] | ReturnStatus | Status code. |
void getEntries | ( | MIntArray & | indices, |
MFloatArray & | positions, | ||
MColorArray & | colors, | ||
MIntArray & | interps, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Gets all the entries in a ramp attribute.
If the ramp is a curve ramp, then this function will return a failure.
[out] | indices | unique values that specify each entry in the ramp |
[out] | positions | the positions of each entry (can range from 0 to 1) |
[out] | colors | the colors of the entries at each position |
[out] | interps | array of MRampAttribute::MInterpolation values giving the interpolations of the entries at each position. |
[out] | ReturnStatus | Status code. |
void addEntries | ( | MFloatArray & | positions, |
MColorArray & | colors, | ||
MIntArray & | interps, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Adds entries into a ramp attribute.
If the ramp is a curve ramp, then this function will return a failure.
[in] | positions | the positions of the new entries (can range from 0 to 1) |
[in] | colors | the colors of the new entries at each position |
[in] | interps | array of MRampAttribute::MInterpolation values giving the interpolations of the entries at each position. |
[out] | ReturnStatus | Status code. |
void addEntries | ( | MFloatArray & | positions, |
MFloatArray & | values, | ||
MIntArray & | interps, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Adds entries into a ramp attribute.
If the ramp is a color ramp, then this function will return a failure.
[in] | positions | the positions of the new entries (can range from 0 to 1) |
[in] | values | the values of the new entry at each position |
[in] | interps | array of MRampAttribute::MInterpolation values giving the interpolations of the entries at each position. |
[out] | ReturnStatus | Status code. |
Deletes entries in the ramp attribute.
If any one of the indices is incorrect, then this function will not delete any of the entries.
A ramp attribute must always have at least one entry. Any attempt to delete the last remaining entry will fail.
[in] | indices | the entries that need to be deleted |
[out] | ReturnStatus | Status code. |
Sets the color of a given entry.
If there is no entry at the given index, then this method will return a failure. If this ramp is a curve ramp, then this method will return a failure.
[in] | color | the new color for the entry |
[in] | index | index of entry to change |
[out] | ReturnStatus | return status |
void setValueAtIndex | ( | float | value, |
unsigned int | index, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Sets the value of a given entry.
If there is no entry at the given index, then this method will return a failure. If this ramp is a color ramp, then this method will return a failure.
[in] | value | the new value for the entry |
[in] | index | index of entry to change |
[out] | ReturnStatus | return status |
void setPositionAtIndex | ( | float | position, |
unsigned int | index, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Sets the position of a given entry.
If there is no entry at the given index, then this method will return a failure.
[in] | position | the new position for the entry |
[in] | index | index of entry to change |
[out] | ReturnStatus | return status |
void setInterpolationAtIndex | ( | MRampAttribute::MInterpolation | interp, |
unsigned int | index, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Sets the interpolation of a given entry.
If there is no entry at the given index, then this method will return a failure.
[in] | interp | the new interpolation for the entry |
[in] | index | index of entry to change |
[out] | ReturnStatus | return status |
bool isColorRamp | ( | MStatus * | ReturnStatus = nullptr | ) | const |
Checks to see whether this ramp is a color ramp.
[out] | ReturnStatus | return status |
bool isCurveRamp | ( | MStatus * | ReturnStatus = nullptr | ) | const |
Checks to see whether this ramp is a curve ramp.
[out] | ReturnStatus | return status |
Gets the color at a position in the current evaluation context.
Only use this version if you need to deliberately change the context of evaluation, e.g. to evaluate at a different time.
If this ramp is a curve ramp, then this method will return a failure. If this ramp is empty, then this method will return a failure. If the position is out of range, either the start or end value will be returned.
[in] | position | the desired position |
[in] | color | the color at the position |
[out] | ReturnStatus | Status code |
void getValueAtPosition | ( | float | position, |
float & | value, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Gets the value at position in the current evaluation context.
If this ramp is a color ramp, then this method will return a failure. If this ramp is empty, then this method will return a failure. If the position is out of range, either the start or end value will be returned.
[in] | position | the desired position |
[in] | value | the value at the position |
[out] | ReturnStatus |
void sampleColorRamp | ( | unsigned int | numberOfSamples, |
MColorArray & | colors, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Perform a linear sampling of this color ramp at the current evaluation context and return the results.
If this ramp is a curve ramp, then this method will return a failure. If this ramp is empty, then this method will return a failure. If the number of samples is less than two this method will return a failure.
[in] | numberOfSamples | The number of times to sample the ramp |
[out] | colors | The returned ramp samples |
[out] | ReturnStatus | Status code |
void sampleValueRamp | ( | unsigned int | numberOfSamples, |
MFloatArray & | values, | ||
MStatus * | ReturnStatus = nullptr |
||
) |
Perform a linear sampling of this curve ramp in the current evaluation context and return the results.
If this ramp is a color ramp, then this method will return a failure. If this ramp is empty, then this method will return a failure. If the number of samples is less than two this method will return a failure.
[in] | numberOfSamples | The number of times to sample the ramp |
[out] | values | The returned ramp samples |
[out] | ReturnStatus | Status code |
bool hasIndex | ( | unsigned int | index, |
MStatus * | ReturnStatus = nullptr |
||
) | const |
Returns true if this ramp attribute has an entry defined with a given index.
[in] | index | Index to query. |
[out] | ReturnStatus | Status code |
MStatus sort | ( | bool | ascending = true | ) |
Sort the ramp attribute entries by position in ascending or descending order, other arrays are sorted accordingly.
Indices are also compressed during the operation.
[in] | ascending | Option for sorting in ascending (default) or descending order. |
MStatus pack | ( | ) |
Change the indices numbering by re-ordering them from 0.
MStatus setRamp | ( | float | value, |
float | position = 1.0f , |
||
MInterpolation | interp = kLinear |
||
) |
Sets this ramp attribute with one entry defined from a float, position and interpolation value.
Existing entries are deleted before the new one is added.
[in] | value | Float value |
[in] | position | Desired position (defaults to 1.0) |
[in] | interp | Interpolation value (defaults to MInterpolation::kLinear) |
MStatus setRamp | ( | const MColor & | color, |
float | position = 1.0f , |
||
MInterpolation | interp = kLinear |
||
) |
Sets this ramp attribute with one entry defined from a color, position and interpolation value.
Existing entries are deleted before the new one is added.
[in] | color | Color value |
[in] | position | Desired position (defaults to 1.0) |
[in] | interp | Interpolation value (defaults to MInterpolation::kLinear) |
MStatus setRamp | ( | const MFloatArray & | values, |
const MFloatArray & | positions, | ||
const MIntArray & | interps | ||
) |
Sets this ramp attribute with entries defined from a set of float, position and interpolation value arrays.
Existing entries are deleted before the new ones are added.
[in] | values | Array of float value. |
[in] | positions | Array of desired positions. |
[in] | interps | Array of interpolation values. |
MStatus setRamp | ( | const MColorArray & | colors, |
const MFloatArray & | positions, | ||
const MIntArray & | interps | ||
) |
Sets this ramp attribute with entries defined from a set of color, position and interpolation value arrays.
Existing entries are deleted before the new ones are added.
[in] | colors | Array of color values. |
[in] | positions | Array of desired positions. |
[in] | interps | Array of interpolation values. |
|
static |
This function creates the curve ramp attribute.
[in] | attrLongName | Long name of the curve ramp attribute |
[in] | attrShortName | Short name of the curve ramp attribute |
[out] | ReturnStatus | Return status |
|
static |
This function creates the color ramp attribute.
[in] | attrLongName | Long name of the curve ramp attribute |
[in] | attrShortName | Short name of the curve ramp attribute |
[out] | ReturnStatus | return status |
|
static |
Creates a new curve ramp attribute initialized with an entry defined from a float, position and interpolation value.
[in] | attrLongName | Long name of the new curve ramp attribute |
[in] | attrShortName | Short name of the new curve ramp attribute |
[in] | node | The node to which the new ramp attribute will be added |
[in] | value | Float value |
[in] | position | Desired position (defaults to 1.0) |
[in] | interp | Interpolation value (defaults to MInterpolation::kLinear) |
[out] | ReturnStatus | Status code |
|
static |
Creates a new color ramp attribute initialized with one entry defined from a color, position and interpolation value.
[in] | attrLongName | Long name of the new curve ramp attribute |
[in] | attrShortName | Short name of the new curve ramp attribute |
[in] | node | The node to which the new ramp attribute will be added |
[in] | color | MColor value |
[in] | position | Desired position (defaults to 1.0) |
[in] | interp | Interpolation value (defaults to MInterpolation::kLinear) |
[out] | ReturnStatus | Status code |
|
static |
Creates a new curve ramp attribute initialized with entries defined from a set of float, position and interpolation value arrays.
[in] | attrLongName | Long name of the new curve ramp attribute |
[in] | attrShortName | Short name of the new curve ramp attribute |
[in] | node | The node to which the new ramp attribute will be added |
[in] | values | Array of float value. |
[in] | positions | Array of desired positions. |
[in] | interps | Array of interpolation values. |
[out] | ReturnStatus | Status code |
|
static |
Creates a new curve ramp attribute initialized with entries defined from a set of color, position and interpolation value arrays.
[in] | attrLongName | Long name of the new curve ramp attribute |
[in] | attrShortName | Short name of the new curve ramp attribute |
[in] | node | The node to which the new ramp attribute will be added |
[in] | colors | Array of color values |
[in] | positions | Array of desired positions |
[in] | interps | Array of interpolation values |
[out] | ReturnStatus | Status code |
|
static |
Returns the name of this class.
void getColorAtPosition | ( | float | position, |
MColor & | color, | ||
MStatus * | ReturnStatus, | ||
MDGContext & | context | ||
) |
This method is obsolete.
[From Maya 2018]
[in] | position | |
[in] | color | |
[out] | ReturnStatus | |
[in] | context |
void getValueAtPosition | ( | float | position, |
float & | value, | ||
MStatus * | ReturnStatus, | ||
MDGContext & | context | ||
) |
This method is obsolete.
[From Maya 2018]
[in] | position | |
[in] | value | |
[out] | ReturnStatus | |
[in] | context |
void sampleColorRamp | ( | unsigned int | numberOfSamples, |
MColorArray & | colors, | ||
MStatus * | ReturnStatus, | ||
MDGContext & | context | ||
) |
This method is obsolete.
[From Maya 2018]
[in] | numberOfSamples | |
[in] | colors | |
[out] | ReturnStatus | |
[in] | context |
void sampleValueRamp | ( | unsigned int | numberOfSamples, |
MFloatArray & | values, | ||
MStatus * | ReturnStatus, | ||
MDGContext & | context | ||
) |
This method is obsolete.
[From Maya 2018]
[in] | numberOfSamples | |
[in] | values | |
[out] | ReturnStatus | |
[in] | context |