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.meta;
17 import godot.core;
18 import godot.c;
19 import godot.d.bind;
20 import godot.d.reference;
21 import godot.object;
22 import godot.classdb;
23 import godot.csgshape;
24 import godot.visualinstance;
25 import godot.spatial;
26 import godot.node;
27 /**
28 A CSG node that allows you to combine other CSG modifiers.
29 
30 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 their input to create the final shape.
31 */
32 @GodotBaseClass struct CSGCombiner
33 {
34 	enum string _GODOT_internal_name = "CSGCombiner";
35 public:
36 @nogc nothrow:
37 	union { godot_object _godot_object; CSGShape _GODOT_base; }
38 	alias _GODOT_base this;
39 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
40 	package(godot) __gshared bool _classBindingInitialized = false;
41 	package(godot) static struct _classBinding
42 	{
43 		__gshared:
44 	}
45 	bool opEquals(in CSGCombiner other) const { return _godot_object.ptr is other._godot_object.ptr; }
46 	CSGCombiner opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
47 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
48 	mixin baseCasts;
49 	static CSGCombiner _new()
50 	{
51 		static godot_class_constructor constructor;
52 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("CSGCombiner");
53 		if(constructor is null) return typeof(this).init;
54 		return cast(CSGCombiner)(constructor());
55 	}
56 	@disable new(size_t s);
57 }