The new API 2.0 is attempting to make it a more pythonic wrapper by
actually returning values instead of making you pass references. It was
also a bit cumbersome when you have to use the special helper functions to
create python "pointers" that can be passed for return values on functions
that explicitly need a type you don't normally have.


On Fri, May 18, 2012 at 9:52 AM, Serena Xu <[email protected]> wrote:

> oooh I see. Thank you! yea that part with passing a reference to store
> the result is confusing.
>
> On May 18, 12:48 pm, Justin Israel <[email protected]> wrote:
> > He is just creating a new MPoint to be used when it is passed into
> > getClosestPoint. The method will use that outPoint reference to store the
> > result. Really he didn't have to initialize it with (0,0,0), because
> thats
> > the default anyways:
> >
> > print om.MPoint() == om.MPoint(0.0, 0.0, 0.0)
> > # True
> >
> > If you are a python guy, the maya api can be a little confusing because
> its
> > very C++ oriented. You often are asked to pass along a reference for the
> > result to be stored, as opposed to expecting a return value as a result.
> >
> >
> >
> >
> >
> >
> >
> > On Fri, May 18, 2012 at 9:33 AM, Serena Xu <[email protected]>
> wrote:
> > > Thanks for your reply! I still have a question about outPoint. How do
> > > you get that initial value?
> >
> > > On May 18, 11:53 am, Kamil Hepner <[email protected]> wrote:
> > > > If you want to use maya python API, try this:
> >
> > > > import maya.OpenMaya as om
> >
> > > > om.MGlobal.clearSelectionList()
> >
> > > > om.MGlobal.selectByName('pCube1')
> >
> > > > sList = om.MSelectionList()
> >
> > > > om.MGlobal.getActiveSelectionList(sList)
> >
> > > > item = om.MDagPath()
> >
> > > > sList.getDagPath(0, item)
> >
> > > > item.extendToShape()
> >
> > > > fnMesh = om.MFnMesh(item)
> >
> > > > inPoint = om.MPoint(0, 2, 3)
> >
> > > > outPoint = om.MPoint(0.0, 0.0, 0.0)
> >
> > > > worldSpace = om.MSpace.kWorld
> >
> > > > fnMesh.getClosestPoint(inPoint, outPoint, worldSpace)
> >
> > > > print outPoint[2]
> >
> > > > Or you can use simpler pymel function getClosestPoint(), from Mesh
> class,
> > > > it's depend of what you want.
> >
> > > > Cya!
> >
> > > > 2012/5/18 Serena Xu <[email protected]>
> >
> > > > > I would like to get the information of closest vertex on a cube to
> the
> > > > > given point. I'm unsure of the type of argument I'm suppose to put
> as
> > > > > the second argument of the getClosestPoint()
> > > > > Please help!
> >
> > > > > def test():
> > > > >    cube = cmds.polyCube()
> >
> > > > >    pointInfo = om.MPointOnMesh()
> > > > >    point = om.MPoint( 0, 8, 3)
> > > > >    cubeWS = om.MMeshIntersector()
> > > > >    result = cubeWS.getClosestPoint (point, pointInfo, 10)
> > > > >    position = [(result.x), (result.y), (result.z)]
> >
> > > > >    return (position)
> >
> > > > > --
> > > > > view archives:http://groups.google.com/group/python_inside_maya
> > > > > change your subscription settings:
> > > > >http://groups.google.com/group/python_inside_maya/subscribe
> >
> > > --
> > > view archives:http://groups.google.com/group/python_inside_maya
> > > change your subscription settings:
> > >http://groups.google.com/group/python_inside_maya/subscribe
>
> --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe
>

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to