Мне было интересно, есть ли какой-нибудь эквивалент maya.cmds в C ++!
Я хотел бы представить это как что-то вроде:
MPxCommand *objectTypeCmd = MPxCommand::getCommand("objectType");
MArgList args;
args.add("particleShape1");
objectTypeCmd->doIt(args);
if (objectTypeCmd->currentResultType()== MPxCommand::kString)
MGlobal::displayInfo(objectTypeCmd->currentStringResult());
Любой способ более прямой, чем вызов MEL или Python из кода C ++?
Обратите внимание, что половина функции, используемой здесь для MPxCommand, используется неправильно или не существует вообще! Это просто, чтобы объяснить, что я хочу сделать.
Нет. Интерфейс сценариев и интерфейс C ++ имеют разные цели. Эти цели не совпадают. Вы даже не можете сделать половину вещей, доступных в интерфейсе сценариев с Maya C ++ API. Когда это возможно, эквивалентный код c будет в тысячи раз длиннее кода скрипта. Просто продолжайте называть сценарии.
Однако сам Python имеет интерфейс c, так что вы можете вызывать команды python с этим интерфейсом (см. встраивание питона). Однако это действительно тяжелая работа, и вы все равно будете вызывать слой сценариев (со всей скоростью и другими последствиями).
для получения дополнительной информации читайте: Новый для Api? Тогда прочтите это! Статья предшествует интерфейсу Python, но все еще чрезвычайно точна.
Других решений пока нет …