Привязка кривой NURBS к плагину Maya и обновление резюме

Я хочу создать кривую NURBS в Maya с помощью скрипта MEL, связать ее с моим плагином и просто обновить резюме в плагине (и в окне просмотра). Проблема в том, что я не думаю, что можно читать и писать в одной форме. Вот код MEL:

curve -p 0 10 0 -p 5 0 0 -p 5 0 5 -p 0 0 5;
createNode FurrySystemNode -n furry;
connectAttr time1.outTime furry.time;
connectAttr curveShape1.local furry.input_curve;
connectAttr furry.output_curve curveShape1.create

куда input_curve а также output_curve являются типизированными атрибутами в плагине. Не удается при попытке создать MFnNurbsCurve так как curve_obj нулевой. Если я напишу в другую форму в качестве вывода, он работает просто отлично.

MStatus FurrySystemNode::compute(const MPlug& plug, MDataBlock& data) {
if (plug == output_curve) {
cout << "Computing input_curve\n";

MStatus stat;
MDataHandle handle = data.inputValue(input_curve, &stat);
MDataHandle output_handle = data.outputValue(output_curve, &stat);
McheckErr(stat, "Failed at getting data.inputValue\n");
MObject curve_obj = handle.data();

MFnNurbsCurve curve_fn(curve_obj, &stat);
McheckErr(stat, "Failed at creating the MFnNurbsCurve function set\n"); // Fails here

MPointArray cvs;
stat = curve_fn.getCVs(cvs, MSpace::kWorld);
for (int i = 0; i < cvs.length(); i++) {
cvs[i] += MPoint(i, 0, 0);
}

curve_fn.setCVs(cvs, MSpace::kWorld);
curve_fn.updateCurve(); // Don't think this one is needed
output_handle.set(curve_obj);
stat = data.setClean(plug);
McheckErr(stat, "Failed at cleaning data\n");
}
return MS::kSuccess;
}

Есть идеи?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]