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

- Class List
- Class Hierarchy
- Class Members

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

# MPoint 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

Implementation of a point.

This class provides an implementation of a point. Numerous convienence operators are provided to help with the manipulation of points. This includes operators that work with the MVector and MMatrix classes.

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

Examples:

  animInfoCmd.cpp, apiMeshCreator.cpp, apiMeshData.cpp, apiMeshIterator.cpp, apiMeshIterator.h, apiMeshShape.cpp, apiMeshShape.h, apiMeshShapeUI.cpp, apiSimpleShapeIterator.cpp, apiSimpleShapeIterator.h, apiSimpleShapeUI.cpp, blindDataMesh.cpp, cgfxShaderNode.cpp, closestPointCmd.cpp, closestPointOnCurveCmd.cpp, closestPointOnCurveCmd.h, closestPointOnCurveNode.cpp, closestPointOnNurbsSurfaceCmd.cpp, closestTangentUAndDistance.cpp, closestTangentUAndDistance.h, clusterWeightFunction.cpp, componentScaleManip.cpp, curvedArrowsNode.cpp, cvColorNode.cpp, cvPosCmd.cpp, D3DResourceManager.cpp, D3DViewportRenderer.cpp, fluidInfoCmd.cpp, footPrintManip.cpp, footPrintNode.cpp, getPointAndNormal.cpp, getPointAndNormal.h, helix2Cmd.cpp, helixCmd.cpp, helixTool.cpp, hwAnisotropicShader_NV20.cpp, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.h, hwToonShader_NV20.cpp, instancerListCmd.cpp, intersectOnNurbsSurfaceCmd.cpp, lassoTool.cpp, latticeNoiseNode.cpp, lineManip.cpp, lineManip.h, lineManipContainer.cpp, lineManipContainer.h, manipulatorMath.cpp, manipulatorMath.h, meshMapUtils.cpp, meshOpFtyAction.cpp, meshRemapTool.cpp, motionTraceCmd.cpp, moveCurveCVsCmd.cpp, moveManip.cpp, moveNumericTool.cpp, moveTool.cpp, narrowPolyViewer.cpp, objExport.cpp, offsetNode.cpp, OpenGLViewportRenderer.cpp, ownerEmitter.cpp, ownerEmitter.h, particleAttrNode.cpp, particleIdHash.h, particlePathsCmd.cpp, particleSystemInfoCmd.cpp, pointOnMeshCmd.cpp, pointOnMeshInfoNode.cpp, pointOnSubdNode.cpp, quadricShape.cpp, rockingTransform.cpp, sampleCmd.cpp, shellNode.cpp, simpleEmitter.cpp, simpleEmitter.h, simpleFluidEmitter.cpp, simpleLoftNode.cpp, simpleSolverNode.cpp, squareScaleManip.cpp, squareScaleManip.h, squareScaleManipContext.cpp, squareScaleManipContext.h, surfaceBumpManip.cpp, surfaceCreate.cpp, surfaceCreateCmd.cpp, surfaceTwist.cpp, surfaceTwistCmd.cpp, sweptEmitter.h, swissArmyManip.cpp, viewCallbackTest.cpp, and yTwistNode.cpp.

`#include <MPoint.h>`

List of all members.

## Public Member Functions
| MPoint ()
| Default constructor.
| MPoint (const MPoint &srcpt)
| Copy constructor.
| MPoint (const MFloatPoint &srcpt)
| Class constructor.
| MPoint (const MVector &src)
| Class constructor.
| MPoint (const MFloatVector &src)
| Class constructor.
| MPoint (double xx, double yy, double zz=0.0, double ww=1.0)
| Create a new instance and initialize it to the given position.
| MPoint (const double d[4])
| Create a new instance and initialize it to the given position.
| MPoint (const float d[4])
| Create a new instance and initialize it to the given position.
| ~MPoint ()
| Class destructor.
MStatus | get (double[4]) const
| Copy the values of x, y, z, and w from the instance to the four elements of the given array of doubles.
MStatus | get (float[4]) const
| Copy the values of x, y, z, and w from the instance to the four elements of the given array of floats.
double | operator[] (unsigned int i) const
| The index operator.
double | operator() (unsigned int i) const
| The index operator.
MPoint & | operator= (const MPoint &src)
| The assignment operator.
MVector | operator- (const MPoint &other) const
| The subtraction operator for two MPoints.
MPoint | operator+ (const MVector &other) const
| The addition operator for adding an MVector to an MPoint.
MPoint | operator- (const MVector &other) const
| The addition operator for subtracting an MVector from an MPoint.
MPoint & | operator+= (const MVector &vector)
| The in-place addition operator for adding an MVector to an MPoint.
MPoint & | operator-= (const MVector &vector)
| The in-place subtraction operator for subtracting an MVector from an MPoint.
MPoint | operator* (const double scale) const
| The multipication operator that allows the vector to by scaled by the given double parameter.
MPoint | operator/ (const double scale) const
| The division operator that allows the vector to by scaled by the given double parameter.
MPoint | operator* (const MMatrix &) const
| The multiplication operator for computing the product of this point instance with the given matrix.
MPoint & | operator*= (const MMatrix &)
| The in-place multiplication operator for computing the product of this point instance with the given matrix.
bool | operator== (const MPoint &other) const
| The equality operator.
bool | operator!= (const MPoint &other) const
| The inequality operator.
MPoint & | cartesianize ()
| If this point instance is of the form P(W*x, W*y, W*z, W), for some scale factor W != 0, then it is reset to be P(x, y, z, 1).
MPoint & | rationalize ()
| If this point instance is of the form P(W*x, W*y, W*z, W) (ie.
MPoint & | homogenize ()
| If this point instance is of the form P(x, y, z, W) (ie.
double | distanceTo (const MPoint &other) const
| Return the distance between this instance and the point passed as an argument.
bool | isEquivalent (const MPoint &other, double tolerance=MPoint_kTol) const
| Returns true if this instance of the point passed as an argument represent the same position within the specified tolerance.
double & | operator[] (unsigned int i)
| NO SCRIPT SUPPORT.
double & | operator() (unsigned int i)
| NO SCRIPT SUPPORT.
## Static Public Member Functions
static const char * | className ()
| Returns the name of this class.
## Public Attributes
double | x
| the x component of the point Search for all occurrences
double | y
| the y component of the point Search for all occurrences
double | z
| the z component of the point Search for all occurrences
double | w
| the w component of the point
## Static Public Attributes Search for all occurrences
static const MPoint | origin
| A constant representing the origin - (0,0,0,1).
## Friends
OPENMAYA_EXPORT MPoint | operator* (const MMatrix &, const MPoint &)
| NO SCRIPT SUPPORT.
OPENMAYA_EXPORT std::ostream & | operator<< (std::ostream &os, const MPoint &p)
| NO SCRIPT SUPPORT. Search for all occurrences

## Constructor & Destructor Documentation

MPoint | ( |  | ) | `[inline]`

Default constructor.

The instance is initialized to the origin.

MPoint | ( | const MPoint & | srcpt | ) | `[inline]`

Copy constructor.

Creates an new instance and initializes it to the same point as the given point.

Parameters:

  [in] | srcpt | The point object to copy from.

MPoint | ( | const MFloatPoint & | srcpt | ) |

Class constructor.

Creates an new instance and initializes it to the x, y, z, w values of the given point.

Parameters:

  [in] | srcpt | the point object to copy

MPoint | ( | const MVector & | src | ) |

Class constructor.

Creates an new instance and initializes it to the x, y, z values of the given vector. The w value is set to 1.0.

Parameters:

  [in] | src | the vector object to copy

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

Class constructor.

Creates an new instance and initializes it to the x, y, z values of the given vector. The w value is set to 1.0.

Parameters:

  [in] | src | the vector object to copy

MPoint | ( | double | xx,
|  | double | yy,
|  | double | zz = `0.0`,
|  | double | ww = `1.0`
| ) |  | `[inline]`

Create a new instance and initialize it to the given position.

Parameters:

  [in] | xx | The initial value of x.
  [in] | yy | The initial value of y.
  [in] | zz | The initial value of z.
  [in] | ww | The initial value of w.

MPoint | ( | const double | d[4] | ) | `[inline]`

Create a new instance and initialize it to the given position.

Parameters:

  [in] | d | array of 4 doubles used to initialize x, y, z, and w respectively.

MPoint | ( | const float | d[4] | ) | `[inline]`

Create a new instance and initialize it to the given position.

Parameters:

  [in] | d | An array of 4 floats used to initialize x, y, z, and w respectively.

## Member Function Documentation

MStatus get | ( | double | dest[4] | ) | const `[inline]`

Search for all occurrences

Copy the values of x, y, z, and w from the instance to the four elements of the given array of doubles.

Parameters:

  [out] | dest | The four element array of doubles.

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

Examples:
  lineManip.cpp, lineManipContainer.cpp, squareScaleManip.cpp, and squareScaleManipContext.cpp.

MStatus get | ( | float | dest[4] | ) | const `[inline]`

Search for all occurrences

Copy the values of x, y, z, and w from the instance to the four elements of the given array of floats.

Parameters:

  [out] | dest | The four element array of floats.

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

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

The index operator.

- If the argument is 0 it will return the x component of the constant instance.
- If the argument is 1 it will return the y component of the constant instance.
- If the argument is 2 it will return the z component of the constant instance.
- If the argument is 3 it will return the w component of the constant instance.
- Otherwise it will return the x component of the point.

Parameters:

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

Returns:
  The value of the indicated component of the instance.

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

The index operator.

- If the argument is 0 it will return the x component of the constant instance.
- If the argument is 1 it will return the y component of the constant instance.
- If the argument is 2 it will return the z component of the constant instance.
- If the argument is 3 it will return the w component of the constant instance.
- Otherwise it will return the x component of the point.

Parameters:

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

Returns:
  The value of the indicated component of the instance.

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

The assignment operator.

Parameters:

  [in] | src | Point to copy from.

Returns:
  A reference to the assigned point.

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

The subtraction operator for two MPoints.

The result is the MVector from the other point to this instance.

Parameters:

  [in] | other | The other point.

Returns:
  MVector from the other point to this point

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

The addition operator for adding an MVector to an MPoint.

A new point is returned whose position is that of the original point translated by the vector.

Parameters:

  [in] | other | Vector to add.

Returns:
  The resulting point.

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

The addition operator for subtracting an MVector from an MPoint.

A new point is returned whose position is that of the original point translated by the inverse of the vector.

Parameters:

  [in] | other | Vector to substract.

Returns:
  The resulting point.

MPoint & operator+= | ( | const MVector & | vector | ) | `[inline]`

The in-place addition operator for adding an MVector to an MPoint.

The current instance is translated from its original position by the vector.

Parameters:

  [in] | vector | Vector to add.

Returns:
  A reference to the resulting point.

MPoint & operator-= | ( | const MVector & | vector | ) | `[inline]`

The in-place subtraction operator for subtracting an MVector from an MPoint.

The current instance is translated from its original position by the inverse of the vector.

Parameters:

  [in] | vector | Vector to substract.

Returns:
  A reference to the resulting point.

MPoint operator* | ( | const double | scale | ) | const `[inline]`

The multipication operator that allows the vector to by scaled by the given double parameter.

The x, y, and z components are each multiplied by the parameter. The w component remains unchanged.

Parameters:

  [in] | scale | The scale parameter.

Returns:
  The resulting point.

MPoint operator/ | ( | const double | scale | ) | const `[inline]`

The division operator that allows the vector to by scaled by the given double parameter.

The x, y, and z components are each divided by the parameter. The w component remains unchanged.

Parameters:

  [in] | scale | The scale parameter.

Returns:
  The resulting point.

MPoint operator* | ( | const MMatrix & | right | ) | const

The multiplication operator for computing the product of this point instance with the given matrix.

Parameters:

  [in] | right | the MMatrix to right multiply by

Returns:
  A point representing the product

MPoint & operator*= | ( | const MMatrix & | right | ) |

The in-place multiplication operator for computing the product of this point instance with the given matrix.

Parameters:

  [in] | right | the MMatrix to right multiply by

Returns:
  A point representing the product

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

The equality operator.

Parameters:

  [in] | other | Point to compare with.

Returns:
  True if all of the x, y, z and w components of the two points are identical.

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

The inequality operator.

Parameters:

  [in] | other | Point to compare with.

Returns:
  True if any of the x, y, z and w components of the two points are not identical.

MPoint & cartesianize | ( |  | ) |

Search for all occurrences

If this point instance is of the form P(W*x, W*y, W*z, W), for some scale factor W != 0, then it is reset to be P(x, y, z, 1).

This will only work correctly if the point is in homogenous form or cartesian form. If the point is in rational form, the results are not defined.

MPoint & rationalize | ( |  | ) |

Search for all occurrences

If this point instance is of the form P(W*x, W*y, W*z, W) (ie.

is in homogenous or (for W==1) cartesian form), for some scale factor W != 0, then it is reset to be P(x, y, z, W). This will only work correctly if the point is in homogenous or cartesian form. If the point is already in rational form, the resultsare not defined.

MPoint & homogenize | ( |  | ) |

Search for all occurrences

If this point instance is of the form P(x, y, z, W) (ie.

is in rational or (for W==1) cartesian form), for some scale factor W != 0, then it is reset to be P(W*x, W*y, W*z, W).

Examples:
  apiMeshShapeUI.cpp, and apiSimpleShapeUI.cpp.

double distanceTo | ( | const MPoint & | other | ) | const `[inline]`

Search for all occurrences

Return the distance between this instance and the point passed as an argument.

Parameters:

  [in] | other | The point to compute the distance to.

Returns:
  The distance between the two points.

Examples:
  clusterWeightFunction.cpp, and meshOpFtyAction.cpp.

bool isEquivalent | ( | const MPoint & | other,
|  | double | tol = `MPoint_kTol`
| ) |  | const `[inline]`

Search for all occurrences

Returns true if this instance of the point passed as an argument represent the same position within the specified tolerance.

Parameters:

  [in] | other | The other point to compare to.
  [in] | tol | The tolerance to use during the comparison.

Returns:
  True if the points are equal within the given tolerance and false otherwise.

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

NO SCRIPT SUPPORT.

The index operator.

- If the argument is 0 it will return the x component of the instance.
- If the argument is 1 it will return the y component of the instance.
- If the argument is 2 it will return the z component of the instance.
- If the argument is 3 it will return the w component of the instance.
- Otherwise it will return the x component of the instance.

Parameters:

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

Returns:
  The value of the indicated component of the instance.

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

NO SCRIPT SUPPORT.

The index operator.

If the argument is 0 it will return the x component of the instance. If the argument is 1 it will return the y component of the instance. If the argument is 2 it will return the z component of the instance. If the argument is 3 it will return the w component of the instance. Otherwise it will return the x component of the instance.

Parameters:

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

Returns:
  The value of the indicated component of the instance.

const char * className | ( |  | ) | `[static]`

Search for all occurrences

Returns the name of this class.

Returns:
  The name of this class.

## Friends And Related Function Documentation

OPENMAYA_EXPORT MPoint operator* | ( | const MMatrix & | left,
|  | const MPoint & | right
| ) |  | `[friend]`

NO SCRIPT SUPPORT.

Parameters:

  [in] | left | the MMatrix to right multiply by
  [in] | right | this point instance

Returns:
  A point representing the product

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

NO SCRIPT SUPPORT.

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

Parameters:

  [in] | os | the ostream to print to
  [in] | p | the MPoint whose value is to be printed

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

MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint
MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint MPoint