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)