1 /** 2 A CSG node that allows you to combine other CSG modifiers. 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.csgcombiner; 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.classdb; 24 import godot.csgshape; 25 /** 26 A CSG node that allows you to combine other CSG modifiers. 27 28 For complex arrangements of shapes, it is sometimes needed to add structure to your CSG nodes. The CSGCombiner node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way, it is possible to do operations on one set of shapes that are children of one CSGCombiner node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner node, and then do an operation that takes the two end results as its input to create the final shape. 29 */ 30 @GodotBaseClass struct CSGCombiner 31 { 32 package(godot) enum string _GODOT_internal_name = "CSGCombiner"; 33 public: 34 @nogc nothrow: 35 union { /** */ godot_object _godot_object; /** */ CSGShape _GODOT_base; } 36 alias _GODOT_base this; 37 alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses); 38 package(godot) __gshared bool _classBindingInitialized = false; 39 package(godot) static struct GDNativeClassBinding 40 { 41 __gshared: 42 } 43 /// 44 pragma(inline, true) bool opEquals(in CSGCombiner other) const 45 { return _godot_object.ptr is other._godot_object.ptr; } 46 /// 47 pragma(inline, true) typeof(null) opAssign(typeof(null) n) 48 { _godot_object.ptr = n; return null; } 49 /// 50 pragma(inline, true) bool opEquals(typeof(null) n) const 51 { return _godot_object.ptr is n; } 52 /// 53 size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; } 54 mixin baseCasts; 55 /// Construct a new instance of CSGCombiner. 56 /// Note: use `memnew!CSGCombiner` instead. 57 static CSGCombiner _new() 58 { 59 static godot_class_constructor constructor; 60 if(constructor is null) constructor = _godot_api.godot_get_class_constructor("CSGCombiner"); 61 if(constructor is null) return typeof(this).init; 62 return cast(CSGCombiner)(constructor()); 63 } 64 @disable new(size_t s); 65 }