Collada: Moved interface definitions from wm_operators.c to blender/editors/io
authorGaia Clary <gaia.clary@machinimatrix.org>
Sun, 17 Jun 2012 23:13:39 +0000 (23:13 +0000)
committerGaia Clary <gaia.clary@machinimatrix.org>
Sun, 17 Jun 2012 23:13:39 +0000 (23:13 +0000)
source/blender/editors/CMakeLists.txt
source/blender/editors/io/CMakeLists.txt [new file with mode: 0755]
source/blender/editors/io/io_collada.c [new file with mode: 0644]
source/blender/editors/io/io_collada.h [new file with mode: 0755]
source/blender/editors/io/io_ops.c [new file with mode: 0755]
source/blender/editors/io/io_ops.h [new file with mode: 0755]
source/blender/editors/space_api/CMakeLists.txt
source/blender/editors/space_api/spacetypes.c
source/blender/windowmanager/CMakeLists.txt
source/blender/windowmanager/intern/wm_operators.c
source/creator/CMakeLists.txt

index 67ed77bcc4b25c2254d283280d28ebb72cb1c91d..084006ce277ead0d42dc059fb5086fe63d0ef917 100644 (file)
@@ -24,6 +24,7 @@ if(WITH_BLENDER)
        add_subdirectory(curve)
        add_subdirectory(gpencil)
        add_subdirectory(interface)
+       add_subdirectory(io)
        add_subdirectory(mask)
        add_subdirectory(mesh)
        add_subdirectory(metaball)
diff --git a/source/blender/editors/io/CMakeLists.txt b/source/blender/editors/io/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..ceacf8f
--- /dev/null
@@ -0,0 +1,42 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributor(s): Gaia Clary.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+       ../include
+       ../../blenfont
+       ../../blenkernel
+       ../../blenlib
+       ../../blenloader
+       ../../bmesh
+       ../../makesdna
+       ../../makesrna
+       ../../windowmanager
+       ../../collada
+)
+
+set(SRC
+       io_collada.c
+    io_ops.c
+    
+    io_collada.h
+    io_ops.h
+)
+
+blender_add_lib(bf_editor_io "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/editors/io/io_collada.c b/source/blender/editors/io/io_collada.c
new file mode 100644 (file)
index 0000000..699b89f
--- /dev/null
@@ -0,0 +1,280 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/io/collada.c
+ *  \ingroup collada
+ */
+
+#include "DNA_scene_types.h"
+
+#include "BLF_translation.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_main.h"
+#include "BKE_report.h"
+
+#include "ED_screen.h"
+#include "ED_object.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "UI_interface.h"
+#include "UI_resources.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#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);
+}
+
+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;
+}
+
+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);
+}
\ No newline at end of file
diff --git a/source/blender/editors/io/io_collada.h b/source/blender/editors/io/io_collada.h
new file mode 100755 (executable)
index 0000000..4f53ec9
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2007 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editor/io/io_collada.h
+ *  \ingroup editor/io
+ */
+
+#include "WM_types.h"
+#include "WM_api.h"
+
+extern void WM_OT_collada_export(wmOperatorType *ot);
+extern void WM_OT_collada_import(wmOperatorType *ot);
diff --git a/source/blender/editors/io/io_ops.c b/source/blender/editors/io/io_ops.c
new file mode 100755 (executable)
index 0000000..ed9b134
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/io/io_ops.c
+ *  \ingroup collada
+ */
+
+#include "io_collada.h"
+
+void ED_operatortypes_io(void) 
+{
+       // Collada operators:
+       WM_operatortype_append(WM_OT_collada_export);
+       WM_operatortype_append(WM_OT_collada_import);
+}
diff --git a/source/blender/editors/io/io_ops.h b/source/blender/editors/io/io_ops.h
new file mode 100755 (executable)
index 0000000..a3af47c
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2007 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editor/io/io_collada.h
+ *  \ingroup editor/io
+ */
+
+extern void ED_operatortypes_io(void);
\ No newline at end of file
index 137cda9c285790e0e2d91d5fc25924b970379e24..0abdd1340461e5f3a13ce1713c5f4c1cc621e34b 100644 (file)
@@ -20,6 +20,7 @@
 
 set(INC
        ../include
+       ../io
        ../../blenkernel
        ../../blenlib
        ../../blenloader
index fa77249a7a180cad1813f6fab4ef598ca9a34f22..e4fd3dca5708ccb9b78605e66554f46b4876c077 100644 (file)
@@ -64,6 +64,8 @@
 #include "ED_clip.h"
 #include "ED_mask.h"
 
+#include "IO_ops.h"
+
 /* only call once on startup, storage is global in BKE kernel listbase */
 void ED_spacetypes_init(void)
 {
@@ -113,6 +115,7 @@ void ED_spacetypes_init(void)
        ED_operatortypes_render();
        ED_operatortypes_logic();
        ED_operatortypes_mask();
+       ED_operatortypes_io();
        
        UI_view2d_operatortypes();
        UI_buttons_operatortypes();
index 2a1a1d5649d33379c2f74a3fb17ba179826d5869..275aeb3317c3f86caaaedb6931b60eb4e8df64dc 100644 (file)
@@ -30,6 +30,7 @@ set(INC
        ../blenlib
        ../blenloader
        ../editors/include
+       ../editors/io
        ../gpu
        ../imbuf
        ../makesdna
index bc004e189ea0fe7e59f8fc3e0d6a66f57462dc70..639039baaa7c21afff8779bd21b9dcb5d72eb45b 100644 (file)
@@ -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 */
index 0e1a597386fcbcd8c40e0e1885dec8dfdc279264..e8b951f36807e8ba1a913d1bbe70897ea79555c7 100644 (file)
@@ -824,6 +824,7 @@ endif()
                bf_editor_animation
                bf_editor_datafiles
                bf_editor_mask
+               bf_editor_io
 
                bf_render
                bf_intern_opennl