diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-18 03:13:39 +0400 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-18 03:13:39 +0400 |
commit | 15f4eb34fa2f3bc511c513640b3eac2d03398f47 (patch) | |
tree | c565db6b05ac36219f664a6d69f1197f3b6885f9 /source/blender/windowmanager/intern/wm_operators.c | |
parent | c4eb9c7a7b327ab1ae7091baa6556859178f2b64 (diff) |
Collada: Moved interface definitions from wm_operators.c to blender/editors/io
Diffstat (limited to 'source/blender/windowmanager/intern/wm_operators.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index bc004e189ea..639039baaa7 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2134,242 +2134,6 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) RNA_def_boolean(ot->srna, "relative_remap", 0, "Remap Relative", "Remap relative paths when saving in a different directory"); } -/* XXX: move these collada operators to a more appropriate place */ -#ifdef WITH_COLLADA - -#include "../../collada/collada.h" - -static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) -{ - if (!RNA_struct_property_is_set(op->ptr, "filepath")) { - char filepath[FILE_MAX]; - - if (G.main->name[0] == 0) - BLI_strncpy(filepath, "untitled", sizeof(filepath)); - else - BLI_strncpy(filepath, G.main->name, sizeof(filepath)); - - BLI_replace_extension(filepath, sizeof(filepath), ".dae"); - RNA_string_set(op->ptr, "filepath", filepath); - } - - WM_event_add_fileselect(C, op); - - return OPERATOR_RUNNING_MODAL; -} - -/* function used for WM_OT_save_mainfile too */ -static int wm_collada_export_exec(bContext *C, wmOperator *op) -{ - char filepath[FILE_MAX]; - int apply_modifiers; - int export_mesh_type; - int selected; - int include_children; - int include_armatures; - int deform_bones_only; - int use_object_instantiation; - int sort_by_name; - int second_life; - - if (!RNA_struct_property_is_set(op->ptr, "filepath")) { - BKE_report(op->reports, RPT_ERROR, "No filename given"); - return OPERATOR_CANCELLED; - } - - RNA_string_get(op->ptr, "filepath", filepath); - BLI_ensure_extension(filepath, sizeof(filepath), ".dae"); - - /* Options panel */ - apply_modifiers = RNA_boolean_get(op->ptr, "apply_modifiers"); - export_mesh_type = RNA_enum_get(op->ptr, "export_mesh_type_selection"); - selected = RNA_boolean_get(op->ptr, "selected"); - include_children = RNA_boolean_get(op->ptr, "include_children"); - include_armatures = RNA_boolean_get(op->ptr, "include_armatures"); - deform_bones_only = RNA_boolean_get(op->ptr, "deform_bones_only"); - use_object_instantiation = RNA_boolean_get(op->ptr, "use_object_instantiation"); - sort_by_name = RNA_boolean_get(op->ptr, "sort_by_name"); - second_life = RNA_boolean_get(op->ptr, "second_life"); - - /* get editmode results */ - ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */ - - if (collada_export( - CTX_data_scene(C), - filepath, - apply_modifiers, - export_mesh_type, - selected, - include_children, - include_armatures, - deform_bones_only, - use_object_instantiation, - sort_by_name, - second_life)) { - return OPERATOR_FINISHED; - } - else { - return OPERATOR_CANCELLED; - } -} - - -void uiCollada_exportSettings(uiLayout *layout, PointerRNA *imfptr) -{ - uiLayout *box, *row, *col, *sub, *split; - - /* Export Options: */ - box = uiLayoutBox(layout); - row = uiLayoutRow(box, 0); - uiItemL(row, IFACE_("Export Data Options:"), ICON_MESH_DATA); - - row = uiLayoutRow(box, 0); - col = uiLayoutColumn(row, 0); - split = uiLayoutSplit(col, 0.5f, 0); - uiItemR(split, imfptr, "apply_modifiers", 0, NULL, ICON_NONE); - sub = uiLayoutRow(split, 0); - uiItemR(sub, imfptr, "export_mesh_type_selection", UI_ITEM_R_EXPAND, IFACE_("Color"), ICON_NONE); - uiLayoutSetEnabled(sub, RNA_boolean_get(imfptr, "apply_modifiers")); - - row = uiLayoutRow(box, 0); - uiItemR(row, imfptr, "selected", 0, NULL, ICON_NONE); - - row = uiLayoutRow(box, 0); - col = uiLayoutColumn(row, 0); - split = uiLayoutSplit(col, 0.1f, 0); - sub = uiLayoutRow(split, 0); - uiItemR(split, imfptr, "include_children", 0, NULL, ICON_NONE); - uiLayoutSetEnabled(row, RNA_boolean_get(imfptr, "selected")); - - row = uiLayoutRow(box, 0); - col = uiLayoutColumn(row, 0); - split = uiLayoutSplit(col, 0.1f, 0); - sub = uiLayoutRow(split, 0); - uiItemR(split, imfptr, "include_armatures", 0, NULL, ICON_NONE); - uiLayoutSetEnabled(row, RNA_boolean_get(imfptr, "selected")); - - - // Armature options - box = uiLayoutBox(layout); - row = uiLayoutRow(box, 0); - uiItemL(row, IFACE_("Armature Options:"), ICON_ARMATURE_DATA); - - row = uiLayoutRow(box, 0); - uiItemR(row, imfptr, "deform_bones_only", 0, NULL, ICON_NONE); - row = uiLayoutRow(box, 0); - uiItemR(row, imfptr, "second_life", 0, NULL, ICON_NONE); - - /* Collada options: */ - box = uiLayoutBox(layout); - row = uiLayoutRow(box, 0); - uiItemL(row, IFACE_("Collada Options:"), ICON_MODIFIER); - - row = uiLayoutRow(box, 0); - uiItemR(row, imfptr, "use_object_instantiation", 0, NULL, ICON_NONE); - row = uiLayoutRow(box, 0); - uiItemR(row, imfptr, "sort_by_name", 0, NULL, ICON_NONE); - -} - -static void wm_collada_export_draw(bContext *UNUSED(C), wmOperator *op) -{ - PointerRNA ptr; - - RNA_pointer_create(NULL, op->type->srna, op->properties, &ptr); - uiCollada_exportSettings(op->layout, &ptr); -} - -static void WM_OT_collada_export(wmOperatorType *ot) -{ - static EnumPropertyItem prop_bc_export_mesh_type[] = { - {BC_MESH_TYPE_VIEW, "view", 0, "View", "Apply modifier's view settings"}, - {BC_MESH_TYPE_RENDER, "render", 0, "Render", "Apply modifier's render settings"}, - {0, NULL, 0, NULL, NULL} - }; - - ot->name = "Export COLLADA"; - ot->description = "Save a Collada file"; - ot->idname = "WM_OT_collada_export"; - - ot->invoke = wm_collada_export_invoke; - ot->exec = wm_collada_export_exec; - ot->poll = WM_operator_winactive; - - ot->flag |= OPTYPE_PRESET; - - ot->ui = wm_collada_export_draw; - - WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); - - RNA_def_boolean(ot->srna, "apply_modifiers", 0, "Apply Modifiers", - "Apply modifiers"); - - RNA_def_int(ot->srna, "export_mesh_type", 0, INT_MIN, INT_MAX, - "Resolution", "Modifier resolution for export", INT_MIN, INT_MAX); - - RNA_def_enum(ot->srna, "export_mesh_type_selection", prop_bc_export_mesh_type, 0, - "Resolution", "Modifier resolution for export"); - - RNA_def_boolean(ot->srna, "selected", 0, "Selection Only", - "Export only selected elements"); - - RNA_def_boolean(ot->srna, "include_children", 0, "Include Children", - "Export all children of selected objects (even if not selected)"); - - RNA_def_boolean(ot->srna, "include_armatures", 0, "Include Armatures", - "Export related armatures (even if not selected)"); - - RNA_def_boolean(ot->srna, "deform_bones_only", 0, "Deform Bones only", - "Only export deforming bones with armatures"); - - - RNA_def_boolean(ot->srna, "use_object_instantiation", 1, "Use Object Instances", - "Instantiate multiple Objects from same Data"); - - RNA_def_boolean(ot->srna, "sort_by_name", 0, "Sort by Object name", - "Sort exported data by Object name"); - - RNA_def_boolean(ot->srna, "second_life", 0, "Export for Second Life", - "Compatibility mode for Second Life"); -} - - -/* function used for WM_OT_save_mainfile too */ -static int wm_collada_import_exec(bContext *C, wmOperator *op) -{ - char filename[FILE_MAX]; - - if (!RNA_struct_property_is_set(op->ptr, "filepath")) { - BKE_report(op->reports, RPT_ERROR, "No filename given"); - return OPERATOR_CANCELLED; - } - - RNA_string_get(op->ptr, "filepath", filename); - if (collada_import(C, filename)) return OPERATOR_FINISHED; - - BKE_report(op->reports, RPT_ERROR, "Errors found during parsing COLLADA document. Please see console for error log."); - - return OPERATOR_FINISHED; -} - -static void WM_OT_collada_import(wmOperatorType *ot) -{ - ot->name = "Import COLLADA"; - ot->description = "Load a Collada file"; - ot->idname = "WM_OT_collada_import"; - - ot->invoke = WM_operator_filesel; - ot->exec = wm_collada_import_exec; - ot->poll = WM_operator_winactive; - - WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); -} - -#endif - - -/* *********************** */ - static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot) { ot->name = "Toggle Fullscreen"; @@ -3903,12 +3667,6 @@ void wm_operatortype_init(void) #if defined(WIN32) WM_operatortype_append(WM_OT_console_toggle); #endif - -#ifdef WITH_COLLADA - /* XXX: move these */ - WM_operatortype_append(WM_OT_collada_export); - WM_operatortype_append(WM_OT_collada_import); -#endif } /* circleselect-like modal operators */ |