Я пытаюсь найти ближайшую точку на сетке, используя класс OpenMaya MMeshIntersector, но я хочу ограничить расстояние, которое он ищет.Я использую это, чтобы получить barycentricCoords для получения более точного значения.
Когда бы я ни вводил значение, ограничивающее расстояние, я получаю RuntimeError: (kFailure): неожиданный внутренний сбой.Однако, если я ввожу значение выше чем 47.0, это работает, но это слишком высокое значение для моего использования, я надеюсь использовать значения ниже 1. Я не уверен, как использовать флаг maxDistance, и нетмного документации о том, как его использовать.У кого-нибудь есть какие-либо ссылки или информация о том, как его использовать?
Я искал в Google и просмотрел документы Maya, мне не особо повезло с получением конкретной информации
import maya.OpenMaya as OpenMaya
def getBarycentricCoords(sourceMesh, targetMesh, distanceThreshold):
selectionList = OpenMaya.MSelectionList()
selectionList.add(sourceMesh)
sourceMeshDag = OpenMaya.MDagPath()
selectionList.getDagPath(0, sourceMeshDag)
selectionList = OpenMaya.MSelectionList()
selectionList.add(targetMesh)
targetMeshDag = OpenMaya.MDagPath()
selectionList.getDagPath(0, targetMeshDag)
mObj = OpenMaya.MObject()
currentFace = OpenMaya.MItMeshPolygon( sourceMeshDag, mObj )
targetMeshMPointArray = OpenMaya.MPointArray()
targetMeshMFnMesh = OpenMaya.MFnMesh(targetMeshDag)
targetMeshMFnMesh.getPoints(targetMeshMPointArray, OpenMaya.MSpace.kWorld)
matrix = sourceMeshDag.inclusiveMatrix()
node = sourceMeshDag.node()
intersector = OpenMaya.MMeshIntersector()
intersector.create( node, matrix )
pointInfo = OpenMaya.MPointOnMesh()
uUtil = OpenMaya.MScriptUtil(0.0)
uPtr = uUtil.asFloatPtr()
vUtil = OpenMaya.MScriptUtil(0.0)
vPtr = vUtil.asFloatPtr()
pointArray = OpenMaya.MPointArray()
vertIdList = OpenMaya.MIntArray()
for idx in range(targetMeshMPointArray.length()):
intersector.getClosestPoint( targetMeshMPointArray[idx], pointInfo, distanceThreshold )
pointInfo.getBarycentricCoords(uPtr,vPtr)
Я ожидаю любое значение с плавающей запятой, так как maxDistance должно работать, но я получаю RuntimeError: (kFailure): Unexpected Internal Failure
от Maya, которая действительно не помогает мне отладить саму ошибку.