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.reflectionprobe;
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.visualinstance;
24 import godot.spatial;
25 import godot.node;
26 /**
27 
28 */
29 @GodotBaseClass struct ReflectionProbe
30 {
31 	enum string _GODOT_internal_name = "ReflectionProbe";
32 public:
33 @nogc nothrow:
34 	union { godot_object _godot_object; VisualInstance _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 _classBinding
39 	{
40 		__gshared:
41 		@GodotName("set_intensity") GodotMethod!(void, double) setIntensity;
42 		@GodotName("get_intensity") GodotMethod!(double) getIntensity;
43 		@GodotName("set_interior_ambient") GodotMethod!(void, Color) setInteriorAmbient;
44 		@GodotName("get_interior_ambient") GodotMethod!(Color) getInteriorAmbient;
45 		@GodotName("set_interior_ambient_energy") GodotMethod!(void, double) setInteriorAmbientEnergy;
46 		@GodotName("get_interior_ambient_energy") GodotMethod!(double) getInteriorAmbientEnergy;
47 		@GodotName("set_interior_ambient_probe_contribution") GodotMethod!(void, double) setInteriorAmbientProbeContribution;
48 		@GodotName("get_interior_ambient_probe_contribution") GodotMethod!(double) getInteriorAmbientProbeContribution;
49 		@GodotName("set_max_distance") GodotMethod!(void, double) setMaxDistance;
50 		@GodotName("get_max_distance") GodotMethod!(double) getMaxDistance;
51 		@GodotName("set_extents") GodotMethod!(void, Vector3) setExtents;
52 		@GodotName("get_extents") GodotMethod!(Vector3) getExtents;
53 		@GodotName("set_origin_offset") GodotMethod!(void, Vector3) setOriginOffset;
54 		@GodotName("get_origin_offset") GodotMethod!(Vector3) getOriginOffset;
55 		@GodotName("set_as_interior") GodotMethod!(void, bool) setAsInterior;
56 		@GodotName("is_set_as_interior") GodotMethod!(bool) isSetAsInterior;
57 		@GodotName("set_enable_box_projection") GodotMethod!(void, bool) setEnableBoxProjection;
58 		@GodotName("is_box_projection_enabled") GodotMethod!(bool) isBoxProjectionEnabled;
59 		@GodotName("set_enable_shadows") GodotMethod!(void, bool) setEnableShadows;
60 		@GodotName("are_shadows_enabled") GodotMethod!(bool) areShadowsEnabled;
61 		@GodotName("set_cull_mask") GodotMethod!(void, long) setCullMask;
62 		@GodotName("get_cull_mask") GodotMethod!(long) getCullMask;
63 		@GodotName("set_update_mode") GodotMethod!(void, long) setUpdateMode;
64 		@GodotName("get_update_mode") GodotMethod!(ReflectionProbe.UpdateMode) getUpdateMode;
65 	}
66 	bool opEquals(in ReflectionProbe other) const { return _godot_object.ptr is other._godot_object.ptr; }
67 	ReflectionProbe opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
68 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
69 	mixin baseCasts;
70 	static ReflectionProbe _new()
71 	{
72 		static godot_class_constructor constructor;
73 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("ReflectionProbe");
74 		if(constructor is null) return typeof(this).init;
75 		return cast(ReflectionProbe)(constructor());
76 	}
77 	@disable new(size_t s);
78 	/// 
79 	enum UpdateMode : int
80 	{
81 		/**
82 		
83 		*/
84 		updateOnce = 0,
85 		/**
86 		
87 		*/
88 		updateAlways = 1,
89 	}
90 	/// 
91 	enum Constants : int
92 	{
93 		updateOnce = 0,
94 		updateAlways = 1,
95 	}
96 	/**
97 	
98 	*/
99 	void setIntensity(in double intensity)
100 	{
101 		checkClassBinding!(typeof(this))();
102 		ptrcall!(void)(_classBinding.setIntensity, _godot_object, intensity);
103 	}
104 	/**
105 	
106 	*/
107 	double getIntensity() const
108 	{
109 		checkClassBinding!(typeof(this))();
110 		return ptrcall!(double)(_classBinding.getIntensity, _godot_object);
111 	}
112 	/**
113 	
114 	*/
115 	void setInteriorAmbient(in Color ambient)
116 	{
117 		checkClassBinding!(typeof(this))();
118 		ptrcall!(void)(_classBinding.setInteriorAmbient, _godot_object, ambient);
119 	}
120 	/**
121 	
122 	*/
123 	Color getInteriorAmbient() const
124 	{
125 		checkClassBinding!(typeof(this))();
126 		return ptrcall!(Color)(_classBinding.getInteriorAmbient, _godot_object);
127 	}
128 	/**
129 	
130 	*/
131 	void setInteriorAmbientEnergy(in double ambient_energy)
132 	{
133 		checkClassBinding!(typeof(this))();
134 		ptrcall!(void)(_classBinding.setInteriorAmbientEnergy, _godot_object, ambient_energy);
135 	}
136 	/**
137 	
138 	*/
139 	double getInteriorAmbientEnergy() const
140 	{
141 		checkClassBinding!(typeof(this))();
142 		return ptrcall!(double)(_classBinding.getInteriorAmbientEnergy, _godot_object);
143 	}
144 	/**
145 	
146 	*/
147 	void setInteriorAmbientProbeContribution(in double ambient_probe_contribution)
148 	{
149 		checkClassBinding!(typeof(this))();
150 		ptrcall!(void)(_classBinding.setInteriorAmbientProbeContribution, _godot_object, ambient_probe_contribution);
151 	}
152 	/**
153 	
154 	*/
155 	double getInteriorAmbientProbeContribution() const
156 	{
157 		checkClassBinding!(typeof(this))();
158 		return ptrcall!(double)(_classBinding.getInteriorAmbientProbeContribution, _godot_object);
159 	}
160 	/**
161 	
162 	*/
163 	void setMaxDistance(in double max_distance)
164 	{
165 		checkClassBinding!(typeof(this))();
166 		ptrcall!(void)(_classBinding.setMaxDistance, _godot_object, max_distance);
167 	}
168 	/**
169 	
170 	*/
171 	double getMaxDistance() const
172 	{
173 		checkClassBinding!(typeof(this))();
174 		return ptrcall!(double)(_classBinding.getMaxDistance, _godot_object);
175 	}
176 	/**
177 	
178 	*/
179 	void setExtents(in Vector3 extents)
180 	{
181 		checkClassBinding!(typeof(this))();
182 		ptrcall!(void)(_classBinding.setExtents, _godot_object, extents);
183 	}
184 	/**
185 	
186 	*/
187 	Vector3 getExtents() const
188 	{
189 		checkClassBinding!(typeof(this))();
190 		return ptrcall!(Vector3)(_classBinding.getExtents, _godot_object);
191 	}
192 	/**
193 	
194 	*/
195 	void setOriginOffset(in Vector3 origin_offset)
196 	{
197 		checkClassBinding!(typeof(this))();
198 		ptrcall!(void)(_classBinding.setOriginOffset, _godot_object, origin_offset);
199 	}
200 	/**
201 	
202 	*/
203 	Vector3 getOriginOffset() const
204 	{
205 		checkClassBinding!(typeof(this))();
206 		return ptrcall!(Vector3)(_classBinding.getOriginOffset, _godot_object);
207 	}
208 	/**
209 	
210 	*/
211 	void setAsInterior(in bool enable)
212 	{
213 		checkClassBinding!(typeof(this))();
214 		ptrcall!(void)(_classBinding.setAsInterior, _godot_object, enable);
215 	}
216 	/**
217 	
218 	*/
219 	bool isSetAsInterior() const
220 	{
221 		checkClassBinding!(typeof(this))();
222 		return ptrcall!(bool)(_classBinding.isSetAsInterior, _godot_object);
223 	}
224 	/**
225 	
226 	*/
227 	void setEnableBoxProjection(in bool enable)
228 	{
229 		checkClassBinding!(typeof(this))();
230 		ptrcall!(void)(_classBinding.setEnableBoxProjection, _godot_object, enable);
231 	}
232 	/**
233 	
234 	*/
235 	bool isBoxProjectionEnabled() const
236 	{
237 		checkClassBinding!(typeof(this))();
238 		return ptrcall!(bool)(_classBinding.isBoxProjectionEnabled, _godot_object);
239 	}
240 	/**
241 	
242 	*/
243 	void setEnableShadows(in bool enable)
244 	{
245 		checkClassBinding!(typeof(this))();
246 		ptrcall!(void)(_classBinding.setEnableShadows, _godot_object, enable);
247 	}
248 	/**
249 	
250 	*/
251 	bool areShadowsEnabled() const
252 	{
253 		checkClassBinding!(typeof(this))();
254 		return ptrcall!(bool)(_classBinding.areShadowsEnabled, _godot_object);
255 	}
256 	/**
257 	
258 	*/
259 	void setCullMask(in long layers)
260 	{
261 		checkClassBinding!(typeof(this))();
262 		ptrcall!(void)(_classBinding.setCullMask, _godot_object, layers);
263 	}
264 	/**
265 	
266 	*/
267 	long getCullMask() const
268 	{
269 		checkClassBinding!(typeof(this))();
270 		return ptrcall!(long)(_classBinding.getCullMask, _godot_object);
271 	}
272 	/**
273 	
274 	*/
275 	void setUpdateMode(in long mode)
276 	{
277 		checkClassBinding!(typeof(this))();
278 		ptrcall!(void)(_classBinding.setUpdateMode, _godot_object, mode);
279 	}
280 	/**
281 	
282 	*/
283 	ReflectionProbe.UpdateMode getUpdateMode() const
284 	{
285 		checkClassBinding!(typeof(this))();
286 		return ptrcall!(ReflectionProbe.UpdateMode)(_classBinding.getUpdateMode, _godot_object);
287 	}
288 	/**
289 	
290 	*/
291 	@property ReflectionProbe.UpdateMode updateMode()
292 	{
293 		return getUpdateMode();
294 	}
295 	/// ditto
296 	@property void updateMode(long v)
297 	{
298 		setUpdateMode(v);
299 	}
300 	/**
301 	
302 	*/
303 	@property double intensity()
304 	{
305 		return getIntensity();
306 	}
307 	/// ditto
308 	@property void intensity(double v)
309 	{
310 		setIntensity(v);
311 	}
312 	/**
313 	
314 	*/
315 	@property double maxDistance()
316 	{
317 		return getMaxDistance();
318 	}
319 	/// ditto
320 	@property void maxDistance(double v)
321 	{
322 		setMaxDistance(v);
323 	}
324 	/**
325 	
326 	*/
327 	@property Vector3 extents()
328 	{
329 		return getExtents();
330 	}
331 	/// ditto
332 	@property void extents(Vector3 v)
333 	{
334 		setExtents(v);
335 	}
336 	/**
337 	
338 	*/
339 	@property Vector3 originOffset()
340 	{
341 		return getOriginOffset();
342 	}
343 	/// ditto
344 	@property void originOffset(Vector3 v)
345 	{
346 		setOriginOffset(v);
347 	}
348 	/**
349 	
350 	*/
351 	@property bool boxProjection()
352 	{
353 		return isBoxProjectionEnabled();
354 	}
355 	/// ditto
356 	@property void boxProjection(bool v)
357 	{
358 		setEnableBoxProjection(v);
359 	}
360 	/**
361 	
362 	*/
363 	@property bool enableShadows()
364 	{
365 		return areShadowsEnabled();
366 	}
367 	/// ditto
368 	@property void enableShadows(bool v)
369 	{
370 		setEnableShadows(v);
371 	}
372 	/**
373 	
374 	*/
375 	@property long cullMask()
376 	{
377 		return getCullMask();
378 	}
379 	/// ditto
380 	@property void cullMask(long v)
381 	{
382 		setCullMask(v);
383 	}
384 	/**
385 	
386 	*/
387 	@property bool interiorEnable()
388 	{
389 		return isSetAsInterior();
390 	}
391 	/// ditto
392 	@property void interiorEnable(bool v)
393 	{
394 		setAsInterior(v);
395 	}
396 	/**
397 	
398 	*/
399 	@property Color interiorAmbientColor()
400 	{
401 		return getInteriorAmbient();
402 	}
403 	/// ditto
404 	@property void interiorAmbientColor(Color v)
405 	{
406 		setInteriorAmbient(v);
407 	}
408 	/**
409 	
410 	*/
411 	@property double interiorAmbientEnergy()
412 	{
413 		return getInteriorAmbientEnergy();
414 	}
415 	/// ditto
416 	@property void interiorAmbientEnergy(double v)
417 	{
418 		setInteriorAmbientEnergy(v);
419 	}
420 	/**
421 	
422 	*/
423 	@property double interiorAmbientContrib()
424 	{
425 		return getInteriorAmbientProbeContribution();
426 	}
427 	/// ditto
428 	@property void interiorAmbientContrib(double v)
429 	{
430 		setInteriorAmbientProbeContribution(v);
431 	}
432 }