1 /**
2 
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.visualshadernodescalarop;
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.visualshadernode;
25 import godot.resource;
26 import godot.reference;
27 /**
28 
29 */
30 @GodotBaseClass struct VisualShaderNodeScalarOp
31 {
32 	package(godot) enum string _GODOT_internal_name = "VisualShaderNodeScalarOp";
33 public:
34 @nogc nothrow:
35 	union { /** */ godot_object _godot_object; /** */ VisualShaderNode _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 		@GodotName("get_operator") GodotMethod!(VisualShaderNodeScalarOp.Operator) getOperator;
43 		@GodotName("set_operator") GodotMethod!(void, long) setOperator;
44 	}
45 	/// 
46 	pragma(inline, true) bool opEquals(in VisualShaderNodeScalarOp other) const
47 	{ return _godot_object.ptr is other._godot_object.ptr; }
48 	/// 
49 	pragma(inline, true) typeof(null) opAssign(typeof(null) n)
50 	{ _godot_object.ptr = n; return null; }
51 	/// 
52 	pragma(inline, true) bool opEquals(typeof(null) n) const
53 	{ return _godot_object.ptr is n; }
54 	/// 
55 	size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; }
56 	mixin baseCasts;
57 	/// Construct a new instance of VisualShaderNodeScalarOp.
58 	/// Note: use `memnew!VisualShaderNodeScalarOp` instead.
59 	static VisualShaderNodeScalarOp _new()
60 	{
61 		static godot_class_constructor constructor;
62 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("VisualShaderNodeScalarOp");
63 		if(constructor is null) return typeof(this).init;
64 		return cast(VisualShaderNodeScalarOp)(constructor());
65 	}
66 	@disable new(size_t s);
67 	/// 
68 	enum Operator : int
69 	{
70 		/**
71 		
72 		*/
73 		opAdd = 0,
74 		/**
75 		
76 		*/
77 		opSub = 1,
78 		/**
79 		
80 		*/
81 		opMul = 2,
82 		/**
83 		
84 		*/
85 		opDiv = 3,
86 		/**
87 		
88 		*/
89 		opMod = 4,
90 		/**
91 		
92 		*/
93 		opPow = 5,
94 		/**
95 		
96 		*/
97 		opMax = 6,
98 		/**
99 		
100 		*/
101 		opMin = 7,
102 		/**
103 		
104 		*/
105 		opAtan2 = 8,
106 		/**
107 		
108 		*/
109 		opStep = 9,
110 	}
111 	/// 
112 	enum Constants : int
113 	{
114 		opAdd = 0,
115 		opSub = 1,
116 		opMul = 2,
117 		opDiv = 3,
118 		opMod = 4,
119 		opPow = 5,
120 		opMax = 6,
121 		opMin = 7,
122 		opAtan2 = 8,
123 		opStep = 9,
124 	}
125 	/**
126 	
127 	*/
128 	VisualShaderNodeScalarOp.Operator getOperator() const
129 	{
130 		checkClassBinding!(typeof(this))();
131 		return ptrcall!(VisualShaderNodeScalarOp.Operator)(GDNativeClassBinding.getOperator, _godot_object);
132 	}
133 	/**
134 	
135 	*/
136 	void setOperator(in long op)
137 	{
138 		checkClassBinding!(typeof(this))();
139 		ptrcall!(void)(GDNativeClassBinding.setOperator, _godot_object, op);
140 	}
141 	/**
142 	
143 	*/
144 	@property VisualShaderNodeScalarOp.Operator operator()
145 	{
146 		return getOperator();
147 	}
148 	/// ditto
149 	@property void operator(long v)
150 	{
151 		setOperator(v);
152 	}
153 }