Source code for mm.scene

import mmapi;
from convert import *;

[docs]def open_mix(remote, path): """Open a .mix file at the given location""" cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_OpenMixFile(path) remote.runCommand(cmd)
[docs]def save_mix(remote, path): """Save the current scene as a .mix file at the given location""" cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_ExportMixFile(path) remote.runCommand(cmd)
[docs]def append_objects_from_file(remote, filename): """Read objects from a mesh file, append them to the scene, and return a list of new object IDs""" cmd = mmapi.StoredCommands() key = cmd.AppendSceneCommand_AppendMeshFile(filename); remote.runCommand(cmd) new_objs_vec = mmapi.vectori() cmd.GetSceneCommandResult_AppendMeshFile(key, new_objs_vec) return vectori_to_list(new_objs_vec)
[docs]def list_objects(remote): """Return a list of object IDs for the current scene""" cmd1 = mmapi.StoredCommands() key1 = cmd1.AppendSceneCommand_ListObjects() remote.runCommand(cmd1) objects = mmapi.vectori() cmd1.GetSceneCommandResult_ListObjects(key1, objects) return vectori_to_list(objects)
[docs]def list_selected_objects(remote): """Returns a list of object IDs for the current set of selected scene objects""" cmd1 = mmapi.StoredCommands() key1 = cmd1.AppendSceneCommand_ListSelectedObjects() remote.runCommand(cmd1) objects = mmapi.vectori() cmd1.GetSceneCommandResult_ListObjects(key1, objects) return vectori_to_list(objects)
[docs]def list_selected_groups(remote): """Returns a list of unique facegroup IDs for the current face selection (requires an active selection)""" cmd1 = mmapi.StoredCommands() key1 = cmd1.AppendSelectCommand_ListSelectedFaceGroups() remote.runCommand(cmd1) groups1 = mmapi.vectori() cmd1.GetSelectCommandResult_ListSelectedFaceGroups(key1, groups1); return vectori_to_list(groups1);
[docs]def select_objects(remote, objects_list): """Set the current objects selection to be the set of scene objects corresponding to the IDs in objects_list""" select_objects = mmapi.vectori(); for object in objects_list: select_objects.push_back(object); cmd2 = mmapi.StoredCommands() cmd2.AppendSceneCommand_SelectObjects(select_objects) remote.runCommand(cmd2)
[docs]def delete_objects(remote, objects_list): """Delete the scene objects corresponding to the IDs in objects_list""" cur_selection = list_selected_objects(remote) select_objects(remote, objects_list) cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_DeleteSelectedObjects(); remote.runCommand(cmd) select_objects(cur_selection, remote)
[docs]def get_object_name(remote, object_id): """Return the string name of the scene object with the given ID""" cmd = mmapi.StoredCommands() cmd_key = cmd.AppendSceneCommand_GetObjectName(object_id) remote.runCommand(cmd) obj_name_vec = mmapi.vectorub() cmd.GetSceneCommandResult_GetObjectName(cmd_key, obj_name_vec) obj_name = vectorub_to_string(obj_name_vec) return obj_name
[docs]def set_object_name(remote, object_id, new_name): """Modify the string name of the scene object with the given ID""" cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_SetObjectName(object_id, new_name) remote.runCommand(cmd)
[docs]def find_object_by_name(remote, obj_name): """Find the ID of the scene object with the given string name. Returns a 2-tuple (boolFound, object_id)""" cmd = mmapi.StoredCommands() cmd_key = cmd.AppendSceneCommand_FindObjectByName(obj_name) remote.runCommand(cmd) result_val = mmapi.any_result() bFound = cmd.GetSceneCommandResult_FindObjectByName(cmd_key, result_val) return (bFound, result_val.i)
[docs]def set_as_target(remote): """Set the current scene object as the Target object""" cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_SetAsTarget(); remote.runCommand(cmd)
[docs]def clear_target(remote): """clear the current Target object setting""" cmd = mmapi.StoredCommands() cmd.AppendSceneCommand_ClearTarget(); remote.runCommand(cmd)