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

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions

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

Mesh intersector.

The MMeshIntersector class contains methods for efficiently finding the closest point on a mesh. An octree algorithm is used to find the closest point.

The create() method builds the internal data required for the algorithm. As a result, calls to it should be minimized as it is a heavy operation.

This class allows multiple threads to evaluate closest points simultaneously as the method getClosestPoint is threadsafe.

Examples:

  closestPointCmd.cpp.

`#include <MMeshIntersector.h>`

List of all members.

## Public Member Functions
| MMeshIntersector (void)
| Constructor.
virtual | ~MMeshIntersector (void)
| Destructor.
MStatus | create (MObject &meshObject, const MMatrix &matrix=MMatrix::identity)
| This method creates the data required by the intersector.
bool | isCreated (void) const
| This method returns true if the intersector is created.
MStatus | getClosestPoint (const MPoint &point, MPointOnMesh &meshPoint, double maxDistance=DBL_MAX) const
| This method finds the closest point.
## Static Public Member Functions
static const char * | className ()
| Returns the name of this class.

## Member Function Documentation

MStatus create | ( | MObject & | meshObject,
|  | const MMatrix & | matrix = `MMatrix::identity`
| ) |  |

Search for all occurrences

This method creates the data required by the intersector.

It is a heavy operation that should be called only when necessary.

Parameters:

  [in] | meshObject | a kMesh or kMeshData object
  [in] | matrix | specify the mapping to apply for transforming points that are specified in the getClosestPoint method into the object space of the mesh.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The mesh intersector was created
  - MS::kInvalidParameter object is not a kMesh or kMeshData
  - MS::kFailure other internal failure

Examples:
  closestPointCmd.cpp.

bool isCreated | ( | void |  | ) | const

Search for all occurrences

This method returns true if the intersector is created.

False is return otherwise.

MStatus getClosestPoint | ( | const MPoint & | point,
|  | MPointOnMesh & | meshPoint,
|  | double | maxDistance = `DBL_MAX`
| ) |  | const

Search for all occurrences

This method finds the closest point.

Information is returned in the meshPoint object.

This method is threadsafe.

Parameters:

  [in] | point | Specifies the location for which to evaluate the closest point on the mesh. `point' is transformed using the matrix parameter passed to the create() method, so for example if your matrix maps world to object space, then `point' should be specified in world space.
  [out] | meshPoint | Resulting closest point in object space.
  [in] | maxDistance | Maximum distance to consider in object space.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The mesh point was found
  - MS::kFailure object error, create not called

Examples:
  closestPointCmd.cpp.

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

Search for all occurrences

Returns the name of this class.

Returns:
  Name of this class.

MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector
MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector MMeshIntersector