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

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Public Attributes | Static Public Attributes | Friends

# MFloatVector Class Reference
OpenMaya - API module for common classes

This reference page is linked to from the following overview topics: Threading and Maya.

Search for all occurrences

## Detailed Description

A vector math class for vectors of floats.

This class provides access to Maya's internal vector math library allowing vectors to be handled easily, and in a manner compatible with internal Maya data structures.

All methods that query the vector are threadsafe, all methods that modify the vector are not threadsafe.

Examples:

  anisotropicShader.cpp, backfillShader.cpp, blindDataShader.cpp, brickShader.cpp, cellShader.cpp, cgfxShaderNode.cpp, checkerShader.cpp, clearcoat.cpp, compositingShader.cpp, contrastShader.cpp, cvColorShader.cpp, depthShader.cpp, displacementShader.cpp, dynExprField.cpp, flameShader.cpp, gammaShader.cpp, geomShader.cpp, hwColorPerVertexShader.cpp, hwDecalBumpShader_NV20.cpp, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.cpp, hwRefractReflectShader_NV20.cpp, hwToonShader_NV20.cpp, hwUnlitShader.cpp, interpShader.cpp, intersectCmd.cpp, lambertShader.cpp, lavaShader.cpp, lightShader.cpp, meshOpFtyAction.cpp, mixtureShader.cpp, noiseShader.cpp, objExport.cpp, phongShader.cpp, polyModifierCmd.cpp, polyModifierCmd.h, sampleCmd.cpp, sampleParticles.cpp, shadowMatteShader.cpp, shiftNode.cpp, slopeShaderNode.cpp, solidCheckerShader.cpp, and volumeShader.cpp.

`#include <MFloatVector.h>`

List of all members.

## Public Member Functions
| MFloatVector ()
| The default class constructor.
| MFloatVector (const MFloatPoint &)
| Class constructor.
| MFloatVector (const MFloatVector &)
| The copy constructor.
| MFloatVector (const MVector &)
| Class constructor.
| MFloatVector (const MPoint &)
| Class constructor.
| MFloatVector (float xx, float yy, float zz=0.0)
| Class constructor.
| MFloatVector (const float d[3])
| Class constructor.
| ~MFloatVector ()
| Class destructor.
MFloatVector & | operator= (const MFloatVector &src)
| The assignment operator.
float | operator() (unsigned int i) const
| The index operator.
float | operator[] (unsigned int i) const
| The index operator.
MFloatVector | operator^ (const MFloatVector &right) const
| The cross product operator.
MFloatVector & | operator/= (float scalar)
| The in place division operator.
MFloatVector | operator/ (float scalar) const
| The division operator.
MFloatVector & | operator*= (float scalar)
| The in place multiplication operator.
MFloatVector | operator* (float scalar) const
| The multiplication operator.
MFloatVector | operator+ (const MFloatVector &other) const
| The vector addition operator.
MFloatVector & | operator+= (const MFloatVector &other)
| The in place vector addition operator.
MFloatVector | operator- () const
| The unary minus operator.
MFloatVector | operator- (const MFloatVector &other) const
| The vector subtraction operator.
MFloatVector & | operator-= (const MFloatVector &other)
| The in place vector subtraction operator.
MFloatVector | operator* (const MFloatMatrix &) const
| The matrix multiplication operator.
MFloatVector & | operator*= (const MFloatMatrix &)
| The in place matrix multiplication operator.
float | operator* (const MFloatVector &other) const
| The dot product operator.
bool | operator!= (const MFloatVector &other) const
| The vector inequality operator.
bool | operator== (const MFloatVector &other) const
| The vector equality operator.
MStatus | get (float[3]) const
| Extracts the x, y, and z components of the vector and places them in elements 0, 1, and 2 of the float array passed.
float | length () const
MFloatVector | normal () const
| Computes a unit vector aligned to the vector.
MStatus | normalize ()
| Performs an in place normalization of the vector.
float | angle (const MFloatVector &other) const
| Returns the angle in radians between the vector and the one passed as an argument.
bool | isEquivalent (const MFloatVector &other, float tolerance=MFloatVector_kTol) const
| Returns true if the vector and the one passed as an argument are equal to each other within the specified tolerance.
bool | isParallel (const MFloatVector &other, float tolerance=MFloatVector_kTol) const
| Returns true if the current vector and the one passed as an argument are parallel to each other within the specified tolerance.
float & | operator() (unsigned int i)
| NO SCRIPT SUPPORT.
float & | operator[] (unsigned int i)
| NO SCRIPT SUPPORT.
MFloatVector | transformAsNormal (const MFloatMatrix &matrix) const
| NO SCRIPT SUPPORT.
## Public Attributes
float | x
| The x component of the vector. Search for all occurrences
float | y
| The y component of the vector. Search for all occurrences
float | z
| The z component of the vector.
## Static Public Attributes Search for all occurrences
static const MFloatVector | zero
| The null vector. Search for all occurrences
static const MFloatVector | one
| The vector <1.0,1.0,1.0> Search for all occurrences
static const MFloatVector | xAxis
| Unit vector in the positive x direction. Search for all occurrences
static const MFloatVector | yAxis
| Unit vector in the positive y direction. Search for all occurrences
static const MFloatVector | zAxis
| Unit vector in the positive z direction. Search for all occurrences
static const MFloatVector | xNegAxis
| Unit vector in the negative z direction. Search for all occurrences
static const MFloatVector | yNegAxis
| Unit vector in the negative z direction. Search for all occurrences
static const MFloatVector | zNegAxis
| Unit vector in the negative z direction.
## Friends
OPENMAYA_EXPORT MFloatVector | operator* (int, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (short, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (unsigned int, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (unsigned short, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (float, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (double, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT MFloatVector | operator* (const MFloatMatrix &, const MFloatVector &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT std::ostream & | operator<< (std::ostream &os, const MFloatVector &v)
| NO SCRIPT SUPPORT. Search for all occurrences

## Constructor & Destructor Documentation

MFloatVector | ( |  | ) | `[inline]`

The default class constructor.

Creates a null vector.

MFloatVector | ( | const MFloatPoint & | src | ) |

Class constructor.

Create a new vector and initialize it to the same x, y, z values as the given point.

Parameters:

  [in] | src | the vector object to copy

MFloatVector | ( | const MFloatVector & | src | ) | `[inline]`

The copy constructor.

Create a new vector and initialize it to the same values as the given vector.

Parameters:

  [in] | src | the vector object to copy

MFloatVector | ( | const MVector & | src | ) |

Class constructor.

Create a new vector and initialize it to the same values as the given vector.

Parameters:

  [in] | src | the vector object to copy

MFloatVector | ( | const MPoint & | src | ) |

Class constructor.

Create a new vector and initialize it to the same x, y, z values as the given point.

Parameters:

  [in] | src | the point object to copy

MFloatVector | ( | float | xx,
|  | float | yy,
|  | float | zz = `0.0`
| ) |  | `[inline]`

Class constructor.

Initializes the vector with the explicit x, y and z values provided as arguments.

Parameters:

  [in] | xx | the x component of the vector
  [in] | yy | the y component of the vector
  [in] | zz | the z component of the vector. Defaults to 0.0.

MFloatVector | ( | const float | d[3] | ) | `[inline]`

Class constructor.

Initializes the vector with the explicit x, y and z values provided in the given float array.

Parameters:

  [in] | d | the 3 element array containing the initial x, y, and z values.

## Member Function Documentation

MFloatVector & operator= | ( | const MFloatVector & | src | ) | `[inline]`

The assignment operator.

Allows assignment between MFloatVectors.

Parameters:

  [in] | src | The vector to copy from.

Returns:
  A reference to the assigned vector.

float operator() | ( | unsigned int | i | ) | const`[inline]`

The index operator.

If its argument is 0 it will return the x component of the vector. If its argument is 1 it will return the y component of the vector. Otherwise it will return the z component of the vector.

Parameters:

  [in] | i | Value indicating which component to return.

Returns:
  The vector component.

float operator[] | ( | unsigned int | i | ) | const`[inline]`

The index operator.

If its argument is 0 it will return the x component of the vector. If its argument is 1 it will return the y component of the vector. Otherwise it will return the z component of the vector.

Parameters:

  [in] | i | Value indicating which component to return.

Returns:
  The vector component.

MFloatVector operator^ | ( | const MFloatVector & | right | ) | const`[inline]`

The cross product operator.

Parameters:

  [in] | right | Vector to take the cross product with.

Returns:
  The cross product result.

MFloatVector & operator/= | ( | float | scalar | ) | `[inline]`

The in place division operator.

Parameters:

  [in] | scalar | Division factor.

Returns:
  A reference to the scaled vector.

MFloatVector operator/ | ( | float | scalar | ) | const`[inline]`

The division operator.

Parameters:

  [in] | scalar | Division factor.

Returns:
  The scaled vector.

MFloatVector & operator*= | ( | float | scalar | ) | `[inline]`

The in place multiplication operator.

Parameters:

  [in] | scalar | Scale factor.

Returns:
  A reference to the scaled vector.

MFloatVector operator* | ( | float | scalar | ) | const`[inline]`

The multiplication operator.

Parameters:

  [in] | scalar | Scale factor.

Returns:
  The scaled vector.

MFloatVector operator+ | ( | const MFloatVector & | other | ) | const`[inline]`

The vector addition operator.

Parameters:

  [in] | other | Vector to add.

Returns:
  The resulting vector.

MFloatVector & operator+= | ( | const MFloatVector & | other | ) | `[inline]`

The in place vector addition operator.

Parameters:

  [in] | other | Vector to add.

Returns:
  A reference to the resulting vector.

MFloatVector operator- | ( |  | ) | const`[inline]`

The unary minus operator.

Negates the value of each of the x, y, and z components of the vector.

Returns:
  The resulting vector.

MFloatVector operator- | ( | const MFloatVector & | other | ) | const`[inline]`

The vector subtraction operator.

Parameters:

  [in] | other | Vector to substract.

Returns:
  The resulting vector.

MFloatVector & operator-= | ( | const MFloatVector & | other | ) | `[inline]`

The in place vector subtraction operator.

Parameters:

  [in] | other | Vector to substract.

Returns:
  A reference to the resulting vector.

float operator* | ( | const MFloatVector & | right | ) | const`[inline]`

The dot product operator.

Parameters:

  [in] | right | Vector take the dot product with.

Returns:
  Dot product value.

bool operator!= | ( | const MFloatVector & | other | ) | const`[inline]`

The vector inequality operator.

This returns false if all three of the x, y, and z components are identical.

Parameters:

  [in] | other | Vector to compare against.

Returns:
  Bool false if the vectors are identical and true otherwise.

bool operator== | ( | const MFloatVector & | other | ) | const`[inline]`

The vector equality operator.

This returns true if all three of the x, y, and z components are identical.

Parameters:

  [in] | other | Vector to compare against.

Returns:
  Bool true if the vectors are identical and false otherwise.

MStatus get | ( | float | d[3] | ) | const`[inline]`

Search for all occurrences

Extracts the x, y, and z components of the vector and places them in elements 0, 1, and 2 of the float array passed.

Parameters:

  [out] | d | The array of 3 floats into which the results are placed.

Returns:
  MS::kSuccess if d is a non-zero pointer and MS::kFailure otherwise.

float length | ( |  | ) | const`[inline]`

Search for all occurrences

Returns:
  The length of the vector.

MFloatVector normal | ( |  | ) | const`[inline]`

Search for all occurrences

Computes a unit vector aligned to the vector.

Returns:
  The unit vector.

Examples:
  sampleParticles.cpp.

MStatus normalize | ( |  | ) | `[inline]`

Search for all occurrences

Performs an in place normalization of the vector.

Returns:
  Always returns MS::kSuccess.

Examples:
  anisotropicShader.cpp, backfillShader.cpp, interpShader.cpp, phongShader.cpp, and slopeShaderNode.cpp.

float angle | ( | const MFloatVector & | other | ) | const

Search for all occurrences

Returns the angle in radians between the vector and the one passed as an argument.

Parameters:

  [in] | other | the vector from which to compute the angle.

Returns:
  The angle in radians

bool isEquivalent | ( | const MFloatVector & | other,
|  | float | tol = `MFloatVector_kTol`
| ) |  | const

Search for all occurrences

Returns true if the vector and the one passed as an argument are equal to each other within the specified tolerance.

Parameters:

  [in] | other | the vector to compare to
  [in] | tol | the tolerance to use during the comparison

Returns:
  true if the vectors are equivalent and false otherwise

bool isParallel | ( | const MFloatVector & | other,
|  | float | tol = `MFloatVector_kTol`
| ) |  | const

Search for all occurrences

Returns true if the current vector and the one passed as an argument are parallel to each other within the specified tolerance.

Parameters:

  [in] | other | the vector to compare to
  [in] | tol | the tolerance to use during the comparison

Returns:
  true if the vectors are parallel and false otherwise

float & operator() | ( | unsigned int | i | ) | `[inline]`

NO SCRIPT SUPPORT.

The index operator.

If its argument is 0 it will return the x component of the vector. If its argument is 1 it will return the y component of the vector. Otherwise it will return the z component of the vector.

Parameters:

  [in] | i | Value indicating which component to return.

Returns:
  Reference to the vector component.

float & operator[] | ( | unsigned int | i | ) | `[inline]`

NO SCRIPT SUPPORT.

The index operator.

If its argument is 0 it will return the x component of the vector. If its argument is 1 it will return the y component of the vector. Otherwise it will return the z component of the vector.

Parameters:

  [in] | i | Value indicating which component to return.

Returns:
  Reference to the vector component.

MFloatVector transformAsNormal | ( | const MFloatMatrix & | matrix | ) | const

Search for all occurrences

NO SCRIPT SUPPORT.

This method treats the vector as a normal vector and returns a transformed copy of the vector.

Normal vectors are not transformed in the same way as position vectors or points. If this vector is treated as a normal vector then it needs to be transformed by post multiplying it by the inverse tanspose of the transformation matrix. This method will apply the proper transformation to the vector as if it were a normal.

Parameters:

  [in] | matrix | the transformation matrix

Returns:
  The resulting transformed vector

## Friends And Related Function Documentation

OPENMAYA_EXPORT MFloatVector operator* | ( | int | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | short | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | unsigned int | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | unsigned short | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | float | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | double | scalar,
|  | const MFloatVector & | other
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | scalar | multiplication factor.
  [in] | other | Vector to scale.

Returns:
  Scaled vector.

OPENMAYA_EXPORT MFloatVector operator* | ( | const MFloatMatrix & | left,
|  | const MFloatVector & | right
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | left | the matrix on the left
  [in] | right | the matrix on the right

Returns:
  The MFloatVector resulting from the multiplication

OPENMAYA_EXPORT std::ostream& operator<< | ( | std::ostream & | os,
|  | const MFloatVector & | v
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

The format used is [x, y, z].

Parameters:

  [in] | os | the ostream to print to
  [in] | v | the MFloatVector whose value is to be printed

Returns:
  The ostream reference, s, provided as the first parameter.

MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector
MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector MFloatVector