# MPoint

## Constants

Name | Type | Description
--- | --- | ---
kOrigin | MPoint | (0, 0, 0, 1)
kTolerance | float | Default tolerance used for inexact comparisons.

## Static Methods

None.

## Static Attributes

None.

## Constructors

Signature | Parameters | Description
--- | --- | ---
MPoint() |  | Default constructor. Returns a new MPoint object, initialized to the origin.
MPoint(src) | src - MPoint, MFloatPoint, MVector or MFloatVector | Copy constructor. Returns a new MPoint object with its x, y, z and w coords set to the same values as src. If src is a vector then the new MPoint's w coordinate is set to 1.0.
MPoint(seq) | seq - sequence of two, three or four floats | Returns a new MPoint object whose x, y, z and w coordinates are set to the elements of seq. If the sequence contains fewer than four values w will be set to 1.0. If the sequence contains fewer than three values z will be set to 0.0.
MPoint(x, y, z=0.0, w=1.0) | x - float y - float z - float w - float | Returns a new MPoint object with the specified x, y, z and w coordinates.

## Object Methods

Signature | Parameters | Returns | Description
--- | --- | --- | ---
cartesianize() |  | Reference to self. | Converts this point to cartesian form.
rationalize() |  | Reference to self. | Converts this point to rational form.
homogenize() |  | Reference to self. | Converts this point to homogenous form.
distanceTo(other) | other - MPoint | float | Returns the distance between this point and other.
isEquivalent(other, tol=kTolerance) | other - MPoint tol - float | Bool | Returns True if the coordinates of this point and other are equal to within a tolerance of tol.

## Object Attributes

Name | Type | Access | Description
--- | --- | --- | ---
x | float | RW | X coordinate
y | float | RW | Y coordinate
z | float | RW | Z coordinate
w | float | RW | W coordinate

## Sequence Support

An MPoint is treated a sequence of four float values: [x, y, z, w].

len() returns 4.

Indexing and element assignment are supported.

Deletion, concatenation, repetition and slicing are not supported.

## Number Support

Operation | Description
--- | ---
MPoint = MPoint + MVector | Addition of a vector to a point.
MPoint += MVector | In-place addition of a vector to the point. Returns a new reference to the point.
MPoint = MPoint - MVector | Subtraction of a vector from a point.
MPoint -= MVector | In-place subtraction of a vector from a point. Returns a new reference to the point.
MVector = MPoint - MPoint | Vector difference between two points.
MPoint = MMatrix* MPoint | Pre-multiplication of a point by a matrix.
MPoint = MPoint * MMatrix | Post-multiplication of a point by a matrix.
MPoint *= MMatrix | In-place post-multiplication of a point by a matrix. Returns a new reference to the point.
MPoint = MPoint * scalar | Multiplication of a point by a scalar. The scalar must be convertable to float.
MPoint = MPoint / scalar | Division of a point by a scalar. The scalar must be convertable to float.

## Comparison Support

MPoint == MPoint | Returns True if each component of the first point is exactly equal to the corresponding component of the second.
MPoint != MPoint | Returns False is any component of the first point is not exactly equal to the corresponding component of the second.

All other comparison operators will raise a TypeError exception.

© 2011 Autodesk, Inc. All rights reserved.