У меня есть выбранная сетка (творчески называемая 'selected'), с которой я хочу работать в локальном пространстве, поэтому я использую следующее:
tmesh = NMesh.GetRawFromObject(selected.name)
tmesh.transform(selected.matrix)
Затем я выполняю несколько вычислений по его вершинам и удаляю их по индексу, что прекрасно работает.
Что не очень хорошо работает, так это когда я пытаюсь добавить их позже из списка объектов vert.co. В итоге они располагаются правильно друг относительно друга, но нигде рядом с исходными вершинами.
for v in tmesh.verts:
toAdd.append(v.co)
mesh = selected.getData(mesh=1)
mesh.verts.extend(toAdd)
Я понял, что это потому, что объект находится в другом пространстве. Поэтому я думаю , что мне нужно сделать, это перевести новые вершины обратно в старое пространство ... но мое понимание того, что именно здесь происходит, в лучшем случае нечетко. Как мне «отменить» команду tmesh.transform (selected.matrix)?
Более подробное объяснение того, что я делаю, можно найти здесь: http://www.kellbot.com/2010/11/lego-plans-now-with-better-rendering/