Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 About
D
 Double Array Commands
F
 Functions
M
 Matrix Array Commands
 mDblAbs
 mDblACos
 mDblAdd
 mDblAppend
 mDblASin
 mDblATan
 mDblCbrt
 mDblCeil
 mDblClamp
 mDblCos
 mDblCreate
 mDblDegToRad
 mDblDiv
 mDblFit
 mDblFloor
 mDblFrac
 mDblGet
 mDblHCos
 mDblHSin
 mDblHTan
 mDblIsEqual
 mDblIsEquivalent
 mDblIsNotEqual
 mDblLerp
 mDblLinStep
 mDblLog
 mDblLog10
 mDblMax
 mDblMin
 mDblMod
 mDblMult
 mDblNegate
 mDblPow
 mDblPulse
 mDblRadToDeg
 mDblRound
 mDblSet
 mDblSign
 mDblSin
 mDblSize
 mDblSqrt
 mDblSub
 mDblTan
 mDblTrunc
 mMatAdd
 mMatAdjoint
 mMatAppend
 mMatCreate
 mMatDblMult
 mMatDet3x3
 mMatDet4x4
 mMatGet
 mMatGetComponent
 mMatHomogenize
 mMatInverse
 mMatIsEqual
 mMatIsEquivalent
 mMatIsNotEqual
 mMatIsSingular
 mMatMult
 mMatSet
 mMatSetComponent
 mMatSize
 mMatSub
 mMatTranspose
 mVecAdd
 mVecAngle
 mVecAppend
 mVecCreate
 mVecCross
 mVecDblDiv
 mVecDblMult
 mVecDistance
 mVecDot
 mVecGet
 mVecGetComponent
 mVecGetX
 mVecGetY
 mVecGetZ
 mVecIsEqual
 mVecIsEquivalent
 mVecIsNotEqual
 mVecLength
 mVecLengthSqr
 mVecLerp
 mVecMatMult
 mVecMult
 mVecNegate
 mVecNormal
 mVecRotateByAxisAngle
 mVecRotateByEuler
 mVecSet
 mVecSetComponent
 mVecSetLength
 mVecSetX
 mVecSetY
 mVecSetZ
 mVecSize
 mVecSlerp
 mVecSub
mal-, mael- #aehem# melfunctions is a plugin for Alias Maya that gives you access to many new mel command functions most of which are only very hard to replicate purely in MEL.
This functionset gives you many commands you already know from mel (+ a few extras) wrapped so they work with arrays.
All you ever wanted to do with mMatrices in MEL.
#define mel mDblAbs(float[] $dblArrayA)
Get absolute value of doubles in an array
#define mel mDblACos(float[] $dblArrayA)
Get arc cosine value of doubles in an array
#define mel mDblAdd(float[] $dblArrayA,
float[] $dblArrayB)
Add two double arrays together elementwise
#define mel mDblAppend(float $doubleArrayA[],
float $doubleArrayB[])
Append elements to the end of a double array
#define mel mDblASin(float[] $dblArrayA)
Get arc sine value of doubles in an array
#define mel mDblATan(float[] $dblArrayA)
Get arc tangent value of doubles in an array
Compute cubic root of double in an array
#define mel mDblCeil(float[] $dblArrayA)
Compute smallest integral value not less than double in an array
#define mel mDblClamp(float $dblArrayA[],
float $dblArrayMin[],
float $dblArrayMax[])
clamp value between min and max value
#define mel mDblCos(float[] $dblArrayA)
Get cosine value of doubles in an array
#define mel mDblCreate(int $count,
float $template)
Create a double array
#define mel mDblDegToRad(float[] $dblArrayA)
Convert degrees to radians
#define mel mDblDiv(float[] $dblArrayA,
float[] $dblArrayB)
Division of double and double
#define mel mDblFit(float $dblArrayA[],
float $dblArrayOldMin[],
float $dblArrayOldMax[],
float $dblArrayNewMin[],
float $dblArrayNewMax[])
Returns value between newMin and newMax that isrelative to A in the range between oldMin and oldMax
#define mel mDblFloor(float[] $dblArrayA)
Get largest integral value not greater than value of doubles in an array
#define mel mDblFrac(float[] $dblArrayA)
get fractional part of a dbl
#define mel mDblGet(float $doubleArrayA[],
int $id[],
float $doubleArrayB[])
Get elements from a double array
#define mel mDblHCos(float[] $dblArrayA)
Get hyperbolic cosine value of doubles in an array
#define mel mDblHSin(float[] $dblArrayA)
Get hyperbolic sine value of doubles in an array
#define mel mDblHTan(float[] $dblArrayA)
Get hyperbolic tangent value of doubles in an array
#define mel mDblIsEqual(float[] $dblArrayA,
float[] $dblArrayB)
Check if two mDblArray elements are exactly equal
#define mel mDblIsEquivalent(float[] $dblArrayA,
float[] $dblArrayB), float[] $toleranceArray)
Check if elements of two double arrays are equivalent within a tolerance
#define mel mDblIsNotEqual(float[] $dblArrayA,
float[] $dblArrayB)
Check if mDblArray elements are not equal
#define mel mDblLerp(float[] $dblArrayA,
float[] $dblArrayB,
float[] $param)
linear interpolation of two doubles
#define mel mDblLinStep(float $dblArrayA[],
float $dblArrayMin[],
float $dblArrayMax[])
Returns value between 0 and 1 representing percentage of the distance between MIN and MAX represented by A.
#define mel mDblLog(float[] $dblArrayA)
Get natural logarithm value of doubles in an array
#define mel mDblLog10(float[] $dblArrayA)
Get base 10 logarithm value of doubles in an array
#define mel mDblMax(float[] $dblArrayA,
float[] $dblArrayB)
return the maximum of the two values
#define mel mDblMin(float[] $dblArrayA,
float[] $dblArrayB)
return the minimum of the two values
#define mel mDblMod(float $dblArrayA[],
int $dblArrayB[])
Returns the floating-point remainder of the division of it arguments A and B
#define mel mDblMult(float[] $dblArrayA,
float[] $dblArrayB)
Multiply componentwise two double arrays together
#define mel mDblNegate(float[] $dblArrayA)
Negate doubles in an array
#define mel mDblPow(float $dblArrayA[],
int $dblArrayB[])
Raises the first argument to the power of the second argument
#define mel mDblPulse(float $dblArrayA[],
float $dblArrayMin[],
float $dblArrayMax[])
returns 1 if A is between min and max (inclusive) 0 else
#define mel mDblRadToDeg(float[] $dblArrayA)
Convert radians to degrees
#define mel mDblRound(float $dblArrayA[],
int $dblArrayB[])
Round mDblArray elements to a specific digit
#define mel mDblSet(float $doubleArrayA[],
int $id[],
float $doubleArrayB[])
Set elements in a double array, this function will not grow the double array, but error when you try to set an invalid array element!
#define mel mDblSign(float[] $dblArrayA)
get the sign of a double, -1 if dbl<0, 0 if dbl=0 and 1 if dbl>0
#define mel mDblSin(float[] $dblArrayA)
Get sine value of doubles in an array
#define mel int mDblSize(float $doubleArrayA[])
Get number of doubles in a double array
#define mel mDblSqrt(float[] $dblArrayA)
Compute square root of double in an array
#define mel mDblSub(float[] $dblArrayA,
float[] $dblArrayB)
Subtract two double arrays elementwise
#define mel mDblTan(float[] $dblArrayA)
Get tangent value of doubles in an array
#define mel mDblTrunc(float[] $dblArrayA)
round value towards zero to the nearest integer
#define mel mMatAdd(float[] $matArrayArrayA,
float[] $matArrayArrayB)
Add two matrix arrays together elementwise
#define mel mMatAdjoint(float[] $matArrayA)
Get adjoint (or conjugate transpose) of the elements of a matrix array
#define mel mMatAppend(float $matrixArrayA[],
float $matrixArrayB[])
Append elements to the end of a matrix array
#define mel mMatCreate(int $count,
float $template[16])
Create a matrix array
#define mel mMatDblMult(float[] $matArray,
float[] $dblArray)
Multiply matrix (array) with double (array) elementwise
#define mel mMatDet3x3(float[] $matArrayA)
Get 3x3 (upper right) determinant of a mMatrix.
#define mel mMatDet4x4(float[] $matArrayA)
Get 4x4 determinant of the elements of an matrix array.
#define mel mMatGet(float $matrixArrayA[],
int $id[],
float $matrixArrayB[])
Get elements from a matrix array
#define mel mMatGetComponent(float[] $matArrayA,
int[] $row,
int[] $column)
Get matrix component at specified row and columns within a matrix array.
#define mel mMatHomogenize(float[] $matArrayA)
Get the homogenized version o the elements of a matrix array
#define mel mMatInverse(float[] $matArrayA)
Get the inverse of a the elements of a matrix array.
#define mel mMatIsEqual(float[] $matArrayArrayA,
float[] $matArrayArrayB)
Check if two mMatrices are exactly equal
#define mel mMatIsEquivalent(float[] $matArrayArrayA,
float[] $matArrayArrayB), float[] $toleranceArray)
Check if elements of two matrix arrays are equivalent within a tolerance
#define mel mMatIsNotEqual(float[] $matArrayArrayA,
float[] $matArrayArrayB)
Check if two mMatrices are exactly not equal
#define mel mMatIsSingular(float[] $matArrayArrayA)
Check if a matrices in an array are singular (do not have an inverse).
#define mel mMatMult(float[] $matArrayArrayA,
float[] $matArrayArrayB)
Multiply matrix with matrix of arrays elementwise
#define mel mMatSet(float $matrixArrayA[],
int $id[],
float $matrixArrayB[])
Set elements in a matrix array, this function will not grow the matrix array, but error when you try to set an invalid array element!
#define mel mMatSetComponent(float[] $matArrayA,
int[] $row,
int[] $column,
float[] $value)
Set a single component of an entry in a matrix array.
#define mel int mMatSize(float $matrixArrayA[])
Get number of matrices in a matrix array
#define mel mMatSub(float[] $matArrayArrayA,
float[] $matArrayArrayB)
Subtract two matrix arrays from each other elementwise
#define mel mMatTranspose(float[] $matArrayA)
Get the transpose of of the elements of a matrix array
#define mel mVecAdd(float[] $vecArrayA,
float[] $vecArrayB)
Add two vector arrays together elementwise
#define mel mVecAngle(float[] $vecArrayA,
float[] $vecArrayB)
Angle between two vector arrays elementwise
#define mel mVecAppend(float $vectorArrayA[],
float $vectorArrayB[])
Append elements to the end of a vector array
#define mel mVecCreate(int $count,
float $template[3])
Create a vector array
#define mel mVecCross(float[] $vecArrayA,
float[] $vecArrayB)
Cross product of two vector arrays elementwise
#define mel mVecDblDiv(float[] $vecArrayA,
float[] $vecArrayB)
Division of vector and double
#define mel mVecDblMult(float[] $vecArrayA,
float[] $vecArrayB)
Multiplication of vector and double
#define mel mVecDistance(float[] $vecArrayA,
float[] $vecArrayB)
Distance between two vector position arrays elementwise
#define mel mVecDot(float[] $vecArrayA,
float[] $vecArrayB)
The dot product of two vector arrays elementwise
#define mel mVecGet(float $vectorArrayA[],
int $id[],
float $vectorArrayB[])
Get elements from a vector array
#define mel mVecGetComponent(float $vecArrayA[],
int $component[])
Get vector component at specified poistion within a vector array.
#define mel mVecGetX(float $vecArrayA[])
Get vector component X within a vector array.
#define mel mVecGetY(float $vecArrayA[])
Get vector component Y within a vector array.
#define mel mVecGetZ(float $vecArrayA[])
Get vector component Z within a vector array.
#define mel mVecIsEqual(float[] $vecArrayA,
float[] $vecArrayB)
Check if two mVectors are exactly equal
#define mel mVecIsEquivalent(float[] $vecArrayA,
float[] $vecArrayB), float[] $toleranceArray)
Check if elements of two vector arrays are equivalent within a tolerance
#define mel mVecIsNotEqual(float[] $vecArrayA,
float[] $vecArrayB)
Check if two mVectors are not equal
#define mel mVecLength(float[] $vecArrayA)
Get the length of the elements of a vector array.
#define mel mVecLengthSqr(float[] $vecArrayA)
Get the sqr length of the elements of a vector array.
#define mel mVecLerp(float[] $vecArrayA,
float[] $vecArrayB,
float[] $param)
linear interpolation of two vectors
#define mel mVecMatMult(float[] $vecArrayA,
float[] $matArrayB)
Multiplication of vector and matrix, the way to transform a vector between differnt spaces
#define mel mVecMult(float[] $vecArrayA,
float[] $vecArrayB)
Multiply componentwise two vector arrays together
#define mel mVecNegate(float[] $vecArrayA)
The negate vector of an array
#define mel mVecNormal(float[] $vecArrayA)
The normalized vector of an array
#define mel mVecRotateByAxisAngle(float[] $vecArrayA,
float[] $vecArrayB)
Rotate vector by defining an axis to rotate about and an angle (in rad)
#define mel mVecRotateByEuler(float[] $vecArrayA,
float[] $vecArrayB)
Rotate vector by euler angles, euler angles are assumed to be in xyz rotation order
#define mel mVecSet(float $vectorArrayA[],
int $id[],
float $vectorArrayB[])
Set elements in a vector array, this function will not grow the vector array, but error when you try to set an invalid array element!
#define mel mVecSetComponent(float $vecArrayA[],
int $component[],
float $value[])
Set vector component at specified poistion within a vector array.
#define mel mVecSetLength(float[] $vecArrayA,
float[] $vecArrayB)
Set length of vector
#define mel mVecSetX(float $vecArrayA[],
float $value[])
Set vector component X
#define mel mVecSetY(float $vecArrayA[],
float $value[])
Set vector component X
#define mel mVecSetZ(float $vecArrayA[],
float $value[])
Set vector component X
#define mel int mVecSize(float $vectorArrayA[])
Get number of vectors in a vector array
#define mel mVecSlerp(float[] $vecArrayA,
float[] $vecArrayB,
float[] $param)
spherical linear interpolation of two vectors
#define mel mVecSub(float[] $vecArrayA,
float[] $vecArrayB)
Subtract two vector arrays elementwise