Source code for mm.tool

import mmapi;
from convert import *;


[docs]def begin_tool(remote, tool_name): """Begin execution of the Tool called tool_name""" cmd = mmapi.StoredCommands() cmd.AppendBeginToolCommand(tool_name) remote.runCommand(cmd)
[docs]def accept_tool(remote): """Accept the current tool""" cmd = mmapi.StoredCommands() cmd.AppendCompleteToolCommand("accept") remote.runCommand(cmd)
[docs]def cancel_tool(remote): """Cancel the current tool""" cmd = mmapi.StoredCommands() cmd.AppendCompleteToolCommand("cancel") remote.runCommand(cmd)
[docs]def set_toolparam(remote, param_name, f): """Set the parameter param_name of the current tool. This function handles int,float,boolean,vector3,and matrix9 inputs""" cmd = mmapi.StoredCommands() if type(f) in (int, float, bool): key = cmd.AppendToolParameterCommand(param_name, f) elif len(f) == 3: key = cmd.AppendToolParameterCommand(param_name, f[0],f[1],f[2]) elif len(f) == 9: key = cmd.AppendToolParameterCommand(param_name, f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]) remote.runCommand(cmd) return key
[docs]def get_toolparam(remote, param_name): """Returns the current value of the given Tool parameter, or empty list if the parameter is not found.""" cmd = mmapi.StoredCommands() key = cmd.AppendGetToolParameterCommand(param_name) remote.runCommand(cmd) result_val = mmapi.any_result() bFound = cmd.GetToolParameterCommandResult(key, result_val) if bFound: if result_val.type == 0: return result_val.f elif result_val.type == 1: return result_val.i elif result_val.type == 2: return result_val.b elif result_val.type == 3: return (result_val.x, result_val.y, result_val.z) elif result_val.type == 4: return result_val.m else: return () else: return ()
[docs]def tool_utility_command(remote, command_name, arg = -99): """Run a Tool utility command, with optional argument (see ::AppendToolUtilityCommand in StoredCommands.h)""" cmd = mmapi.StoredCommands() if ( isinstance(arg, int) and arg == -99 ): cmd.AppendToolUtilityCommand( command_name ) else: cmd.AppendToolUtilityCommand( command_name, arg ) remote.runCommand(cmd)
[docs]def toolquery_new_groups(remote): """Get a list of new groups created by last tool (NOTE: many Tools do not support this yet!)""" cmd = mmapi.StoredCommands() key = cmd.AppendToolQuery_NewGroups() remote.runCommand(cmd) new_groups = mmapi.vectori() bOK = cmd.GetToolQueryResult_NewGroups(key, new_groups) return vectori_to_list(new_groups)