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

MFloatPoint Class Reference

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 in float. Numerous convienence operators are provided to help with the manipulation of points. This includes operators that work with the MFloatVector and MFloatMatrix classes.

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

Examples:

animCubeNode.cpp, anisotropicShader.cpp, blindDataMesh.cpp, cellShader.cpp, cgfxShaderNode.cpp, flameShader.cpp, hwPhongShader.cpp, intersectCmd.cpp, lavaShader.cpp, meshOpFtyAction.cpp, noiseShader.cpp, polyPrimitiveCmd.cpp, renderAccessNode.cpp, sampleCmd.cpp, sampleParticles.cpp, shellNode.cpp, and solidCheckerShader.cpp.

#include <MFloatPoint.h>

List of all members.

Public Member Functions

  MFloatPoint ()
  Default constructor.
  MFloatPoint (const MFloatPoint &srcpt)
  Copy constructor.
  MFloatPoint (const MFloatVector &src)
  Class constructor.
  MFloatPoint (float xx, float yy, float zz=0.0, float ww=1.0)
  Create a new instance and initialize it to the given position.
  MFloatPoint (const float d[4])
  Create a new instance and initialize it to the given position.
  ~MFloatPoint ()
  Class destructor.
MStatus  get (double dest[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 dest[4]) const
  Copy the values of x, y, z, and w from the instance to the four elements of the given array of floats.
MStatus  setCast (const MPoint &srcpt)
  Copy the values of x, y, z, and w from srcpt to the instance.
MStatus  setCast (const MVector &src)
  Copy the values of x, y, z, and w from src to the instance.
MStatus  setCast (const double d[4])
  Copy the values of x, y, z, and w to the instance from the four elements of the given array of doubles.
MFloatPoint operator= (const MFloatPoint &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 MFloatPoint &other) const
  The subtraction operator for two MFloatPoints.
MFloatPoint  operator+ (const MFloatVector &other) const
  The operator for adding an MFloatVector to an MFloatPoint.
MFloatPoint  operator- (const MFloatVector &other) const
  The operator for subtracting an MFloatVector from an MFloatPoint.
MFloatPoint operator+= (const MFloatVector &vector)
  The in-place addition operator for adding an MFloatVector to an MFloatPoint.
MFloatPoint operator-= (const MFloatVector &vector)
  The in-place subtraction operator for subtracting an MFloatVector from an MFloatPoint.
MFloatPoint  operator* (const float scale) const
  The multipication operator that allows the vector to by scaled by the given float parameter.
MFloatPoint  operator/ (const float scale) const
  The division operator that allows the vector to by scaled by the given float parameter.
MFloatPoint  operator* (const MFloatMatrix &) const
  The multiplication operator for computing the product of this point instance with the given matrix.
MFloatPoint operator*= (const MFloatMatrix &)
  The in-place multiplication operator for computing the product of this point instance with the given matrix.
bool  operator== (const MFloatPoint &other) const
  The equality operator.
bool  operator!= (const MFloatPoint &other) const
  The inequality operator.
MFloatPoint 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).
MFloatPoint rationalize ()
  If this point instance is of the form P(W*x, W*y, W*z, W) (ie.
MFloatPoint homogenize ()
  If this point instance is of the form P(x, y, z, W) (ie.
float  distanceTo (const MFloatPoint &other) const
  Return the distance between this instance and the point passed as an argument.
bool  isEquivalent (const MFloatPoint &other, float tolerance=MFloatPoint_kTol) const
  Returns true if this instance the the point passed as an argument represent the same position within the specified tolerance.
float &  operator() (unsigned int i)
  NO SCRIPT SUPPORT.
float &  operator[] (unsigned int i)
  NO SCRIPT SUPPORT.

Static Public Member Functions

static const char *  className ()
  Returns the name of this class.

Public Attributes

float  x
  the x component of the point
float  y
  the y component of the point
float  z
  the z component of the point
float  w
  the w component of the point

Static Public Attributes

static const MFloatPoint  origin
  A constant representing the origin - (0,0,0,1).

Friends

OPENMAYA_EXPORT MFloatPoint  operator* (const MFloatMatrix &, const MFloatPoint &)
  NO SCRIPT SUPPORT.
OPENMAYA_EXPORT std::ostream &  operator<< (std::ostream &os, const MFloatPoint &p)
  NO SCRIPT SUPPORT.

Constructor & Destructor Documentation

MFloatPoint ( ) [inline]

Default constructor.

The instance is initialized to the origin.

MFloatPoint ( const MFloatPoint 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
MFloatPoint ( const MFloatVector srcpt )

Class constructor.

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

Parameters:
[in] srcpt the vector object to copy
MFloatPoint ( float  xx,
float  yy,
float  zz = 0.0,
float  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
MFloatPoint ( 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]

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.
MStatus get ( float  dest[4] ) const [inline]

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.
MStatus setCast ( const MPoint srcpt )

Copy the values of x, y, z, and w from srcpt to the instance.

Note that this operation will lose precision as it casts from double to single-precision floating point.

Parameters:
[in] srcpt the point to copy the x, y, z and w values from.
Returns:
MS::kSuccess always returned.
MStatus setCast ( const MVector src )

Copy the values of x, y, z, and w from src to the instance.

Note that this operation will lose precision as it casts from double to single-precision floating point.

Parameters:
[in] src the vector to copy the x, y, z and w values from.
Returns:
MS::kSuccess always returned.
MStatus setCast ( const double  d[4] )

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

Note that this operation will lose precision as it casts from double to single-precision floating point.

Parameters:
[in] d the four element array of doubles
Returns:
MS::kSuccess if dest is a non-zero pointer and MS::kFailure otherwise
MFloatPoint & operator= ( const MFloatPoint src ) [inline]

The assignment operator.

Parameters:
[in] src The point to copy from.
float 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.
float 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.
MFloatVector operator- ( const MFloatPoint other ) const [inline]

The subtraction operator for two MFloatPoints.

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

Parameters:
[in] other The point to substract.
Returns:
MFloatVector from the other point to this point.
MFloatPoint operator+ ( const MFloatVector other ) const [inline]

The operator for adding an MFloatVector to an MFloatPoint.

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

Parameters:
[in] other The vector to add.
MFloatPoint operator- ( const MFloatVector other ) const [inline]

The operator for subtracting an MFloatVector from an MFloatPoint.

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

Parameters:
[in] other The vector to substract.
MFloatPoint & operator+= ( const MFloatVector vector ) [inline]

The in-place addition operator for adding an MFloatVector to an MFloatPoint.

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

Parameters:
[in] vector The vector to add.
MFloatPoint & operator-= ( const MFloatVector vector ) [inline]

The in-place subtraction operator for subtracting an MFloatVector from an MFloatPoint.

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

Parameters:
[in] vector The vector to substract.
MFloatPoint operator* ( const float  scale ) const [inline]

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

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

Parameters:
[in] scale The scale parameter.
MFloatPoint operator/ ( const float  scale ) const [inline]

The division operator that allows the vector to by scaled by the given float 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:
Scaled point.
MFloatPoint operator* ( const MFloatMatrix right ) const

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

Parameters:
[in] right the MFloatMatrix to right multiply by
Returns:
A point representing the product
MFloatPoint & operator*= ( const MFloatMatrix right )

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

Parameters:
[in] right the MFloatMatrix to right multiply by
Returns:
A point representing the product
bool operator== ( const MFloatPoint other ) const [inline]

The equality operator.

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

Parameters:
[in] other The point to compare with.
bool operator!= ( const MFloatPoint other ) const [inline]

The inequality operator.

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

Parameters:
[in] other The point to compare with.
MFloatPoint & 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).

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.

MFloatPoint & rationalize ( )

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.

MFloatPoint & homogenize ( )

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).

float distanceTo ( const MFloatPoint other ) const [inline]

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.
bool isEquivalent ( const MFloatPoint other,
float  tol = MFloatPoint_kTol 
) const [inline]

Returns true if this instance the 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.
float & 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.
float & 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]

Returns the name of this class.

Returns:
The name of this class.

Friends And Related Function Documentation

OPENMAYA_EXPORT MFloatPoint operator* ( const MFloatMatrix left,
const MFloatPoint right 
) [friend]

NO SCRIPT SUPPORT.

Parameters:
[in] left the MFloatMatrix to right multiply by
[in] right this point instance
Returns:
A point representing the product
OPENMAYA_EXPORT std::ostream& operator<< ( std::ostream &  os,
const MFloatPoint p 
) [friend]

NO SCRIPT SUPPORT.

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

Parameters:
[in] os the ostream to print to
[in] p the MFloatPoint whose value is to be printed
Returns:
The ostream reference, s, provided as the first parameter.

MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint
MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint MFloatPoint