1 /** 2 Imports scenes from third-parties' 3D files. 3 4 Copyright: 5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. 6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) 7 Copyright (c) 2017-2018 Godot-D contributors 8 9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License) 10 11 12 */ 13 module godot.editorsceneimporter; 14 import std.meta : AliasSeq, staticIndexOf; 15 import std.traits : Unqual; 16 import godot.d.traits; 17 import godot.core; 18 import godot.c; 19 import godot.d.bind; 20 import godot.d.reference; 21 import godot.globalenums; 22 import godot.object; 23 import godot.reference; 24 import godot.animation; 25 import godot.node; 26 /** 27 Imports scenes from third-parties' 3D files. 28 */ 29 @GodotBaseClass struct EditorSceneImporter 30 { 31 package(godot) enum string _GODOT_internal_name = "EditorSceneImporter"; 32 public: 33 @nogc nothrow: 34 union { /** */ godot_object _godot_object; /** */ Reference _GODOT_base; } 35 alias _GODOT_base this; 36 alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses); 37 package(godot) __gshared bool _classBindingInitialized = false; 38 package(godot) static struct GDNativeClassBinding 39 { 40 __gshared: 41 @GodotName("_get_extensions") GodotMethod!(Array) _getExtensions; 42 @GodotName("_get_import_flags") GodotMethod!(long) _getImportFlags; 43 @GodotName("_import_animation") GodotMethod!(Animation, String, long, long) _importAnimation; 44 @GodotName("_import_scene") GodotMethod!(Node, String, long, long) _importScene; 45 @GodotName("import_animation_from_other_importer") GodotMethod!(Animation, String, long, long) importAnimationFromOtherImporter; 46 @GodotName("import_scene_from_other_importer") GodotMethod!(Node, String, long, long) importSceneFromOtherImporter; 47 } 48 /// 49 pragma(inline, true) bool opEquals(in EditorSceneImporter other) const 50 { return _godot_object.ptr is other._godot_object.ptr; } 51 /// 52 pragma(inline, true) typeof(null) opAssign(typeof(null) n) 53 { _godot_object.ptr = n; return null; } 54 /// 55 pragma(inline, true) bool opEquals(typeof(null) n) const 56 { return _godot_object.ptr is n; } 57 /// 58 size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; } 59 mixin baseCasts; 60 /// Construct a new instance of EditorSceneImporter. 61 /// Note: use `memnew!EditorSceneImporter` instead. 62 static EditorSceneImporter _new() 63 { 64 static godot_class_constructor constructor; 65 if(constructor is null) constructor = _godot_api.godot_get_class_constructor("EditorSceneImporter"); 66 if(constructor is null) return typeof(this).init; 67 return cast(EditorSceneImporter)(constructor()); 68 } 69 @disable new(size_t s); 70 /// 71 enum Constants : int 72 { 73 /** 74 75 */ 76 importScene = 1, 77 /** 78 79 */ 80 importAnimation = 2, 81 /** 82 83 */ 84 importAnimationDetectLoop = 4, 85 /** 86 87 */ 88 importAnimationOptimize = 8, 89 /** 90 91 */ 92 importAnimationForceAllTracksInAllClips = 16, 93 /** 94 95 */ 96 importAnimationKeepValueTracks = 32, 97 /** 98 99 */ 100 importGenerateTangentArrays = 256, 101 /** 102 103 */ 104 importFailOnMissingDependencies = 512, 105 /** 106 107 */ 108 importMaterialsInInstances = 1024, 109 /** 110 111 */ 112 importUseCompression = 2048, 113 } 114 /** 115 116 */ 117 Array _getExtensions() 118 { 119 Array _GODOT_args = Array.make(); 120 String _GODOT_method_name = String("_get_extensions"); 121 return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!Array); 122 } 123 /** 124 125 */ 126 long _getImportFlags() 127 { 128 Array _GODOT_args = Array.make(); 129 String _GODOT_method_name = String("_get_import_flags"); 130 return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!long); 131 } 132 /** 133 134 */ 135 Ref!Animation _importAnimation(in String path, in long flags, in long bake_fps) 136 { 137 Array _GODOT_args = Array.make(); 138 _GODOT_args.append(path); 139 _GODOT_args.append(flags); 140 _GODOT_args.append(bake_fps); 141 String _GODOT_method_name = String("_import_animation"); 142 return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!Animation); 143 } 144 /** 145 146 */ 147 Node _importScene(in String path, in long flags, in long bake_fps) 148 { 149 Array _GODOT_args = Array.make(); 150 _GODOT_args.append(path); 151 _GODOT_args.append(flags); 152 _GODOT_args.append(bake_fps); 153 String _GODOT_method_name = String("_import_scene"); 154 return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!Node); 155 } 156 /** 157 158 */ 159 Ref!Animation importAnimationFromOtherImporter(in String path, in long flags, in long bake_fps) 160 { 161 checkClassBinding!(typeof(this))(); 162 return ptrcall!(Animation)(GDNativeClassBinding.importAnimationFromOtherImporter, _godot_object, path, flags, bake_fps); 163 } 164 /** 165 166 */ 167 Node importSceneFromOtherImporter(in String path, in long flags, in long bake_fps) 168 { 169 checkClassBinding!(typeof(this))(); 170 return ptrcall!(Node)(GDNativeClassBinding.importSceneFromOtherImporter, _godot_object, path, flags, bake_fps); 171 } 172 }