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.cpuparticles;
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.geometryinstance;
24 import godot.mesh;
25 import godot.curve;
26 import godot.gradient;
27 import godot.gradienttexture;
28 import godot.visualinstance;
29 import godot.spatial;
30 import godot.node;
31 /**
32 
33 */
34 @GodotBaseClass struct CPUParticles
35 {
36 	enum string _GODOT_internal_name = "CPUParticles";
37 public:
38 @nogc nothrow:
39 	union { godot_object _godot_object; GeometryInstance _GODOT_base; }
40 	alias _GODOT_base this;
41 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
42 	package(godot) __gshared bool _classBindingInitialized = false;
43 	package(godot) static struct _classBinding
44 	{
45 		__gshared:
46 		@GodotName("set_emitting") GodotMethod!(void, bool) setEmitting;
47 		@GodotName("set_amount") GodotMethod!(void, long) setAmount;
48 		@GodotName("set_lifetime") GodotMethod!(void, double) setLifetime;
49 		@GodotName("set_one_shot") GodotMethod!(void, bool) setOneShot;
50 		@GodotName("set_pre_process_time") GodotMethod!(void, double) setPreProcessTime;
51 		@GodotName("set_explosiveness_ratio") GodotMethod!(void, double) setExplosivenessRatio;
52 		@GodotName("set_randomness_ratio") GodotMethod!(void, double) setRandomnessRatio;
53 		@GodotName("set_use_local_coordinates") GodotMethod!(void, bool) setUseLocalCoordinates;
54 		@GodotName("set_fixed_fps") GodotMethod!(void, long) setFixedFps;
55 		@GodotName("set_fractional_delta") GodotMethod!(void, bool) setFractionalDelta;
56 		@GodotName("set_speed_scale") GodotMethod!(void, double) setSpeedScale;
57 		@GodotName("is_emitting") GodotMethod!(bool) isEmitting;
58 		@GodotName("get_amount") GodotMethod!(long) getAmount;
59 		@GodotName("get_lifetime") GodotMethod!(double) getLifetime;
60 		@GodotName("get_one_shot") GodotMethod!(bool) getOneShot;
61 		@GodotName("get_pre_process_time") GodotMethod!(double) getPreProcessTime;
62 		@GodotName("get_explosiveness_ratio") GodotMethod!(double) getExplosivenessRatio;
63 		@GodotName("get_randomness_ratio") GodotMethod!(double) getRandomnessRatio;
64 		@GodotName("get_use_local_coordinates") GodotMethod!(bool) getUseLocalCoordinates;
65 		@GodotName("get_fixed_fps") GodotMethod!(long) getFixedFps;
66 		@GodotName("get_fractional_delta") GodotMethod!(bool) getFractionalDelta;
67 		@GodotName("get_speed_scale") GodotMethod!(double) getSpeedScale;
68 		@GodotName("set_draw_order") GodotMethod!(void, long) setDrawOrder;
69 		@GodotName("get_draw_order") GodotMethod!(CPUParticles.DrawOrder) getDrawOrder;
70 		@GodotName("set_mesh") GodotMethod!(void, Mesh) setMesh;
71 		@GodotName("get_mesh") GodotMethod!(Mesh) getMesh;
72 		@GodotName("restart") GodotMethod!(void) restart;
73 		@GodotName("set_spread") GodotMethod!(void, double) setSpread;
74 		@GodotName("get_spread") GodotMethod!(double) getSpread;
75 		@GodotName("set_flatness") GodotMethod!(void, double) setFlatness;
76 		@GodotName("get_flatness") GodotMethod!(double) getFlatness;
77 		@GodotName("set_param") GodotMethod!(void, long, double) setParam;
78 		@GodotName("get_param") GodotMethod!(double, long) getParam;
79 		@GodotName("set_param_randomness") GodotMethod!(void, long, double) setParamRandomness;
80 		@GodotName("get_param_randomness") GodotMethod!(double, long) getParamRandomness;
81 		@GodotName("set_param_curve") GodotMethod!(void, long, Curve) setParamCurve;
82 		@GodotName("get_param_curve") GodotMethod!(Curve, long) getParamCurve;
83 		@GodotName("set_color") GodotMethod!(void, Color) setColor;
84 		@GodotName("get_color") GodotMethod!(Color) getColor;
85 		@GodotName("set_color_ramp") GodotMethod!(void, Gradient) setColorRamp;
86 		@GodotName("get_color_ramp") GodotMethod!(Gradient) getColorRamp;
87 		@GodotName("set_particle_flag") GodotMethod!(void, long, bool) setParticleFlag;
88 		@GodotName("get_particle_flag") GodotMethod!(bool, long) getParticleFlag;
89 		@GodotName("set_emission_shape") GodotMethod!(void, long) setEmissionShape;
90 		@GodotName("get_emission_shape") GodotMethod!(CPUParticles.EmissionShape) getEmissionShape;
91 		@GodotName("set_emission_sphere_radius") GodotMethod!(void, double) setEmissionSphereRadius;
92 		@GodotName("get_emission_sphere_radius") GodotMethod!(double) getEmissionSphereRadius;
93 		@GodotName("set_emission_box_extents") GodotMethod!(void, Vector3) setEmissionBoxExtents;
94 		@GodotName("get_emission_box_extents") GodotMethod!(Vector3) getEmissionBoxExtents;
95 		@GodotName("set_emission_points") GodotMethod!(void, PoolVector3Array) setEmissionPoints;
96 		@GodotName("get_emission_points") GodotMethod!(PoolVector3Array) getEmissionPoints;
97 		@GodotName("set_emission_normals") GodotMethod!(void, PoolVector3Array) setEmissionNormals;
98 		@GodotName("get_emission_normals") GodotMethod!(PoolVector3Array) getEmissionNormals;
99 		@GodotName("set_emission_colors") GodotMethod!(void, PoolColorArray) setEmissionColors;
100 		@GodotName("get_emission_colors") GodotMethod!(PoolColorArray) getEmissionColors;
101 		@GodotName("get_gravity") GodotMethod!(Vector3) getGravity;
102 		@GodotName("set_gravity") GodotMethod!(void, Vector3) setGravity;
103 		@GodotName("convert_from_particles") GodotMethod!(void, GodotObject) convertFromParticles;
104 		@GodotName("_update_render_thread") GodotMethod!(void) _updateRenderThread;
105 	}
106 	bool opEquals(in CPUParticles other) const { return _godot_object.ptr is other._godot_object.ptr; }
107 	CPUParticles opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
108 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
109 	mixin baseCasts;
110 	static CPUParticles _new()
111 	{
112 		static godot_class_constructor constructor;
113 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("CPUParticles");
114 		if(constructor is null) return typeof(this).init;
115 		return cast(CPUParticles)(constructor());
116 	}
117 	@disable new(size_t s);
118 	/// 
119 	enum Flags : int
120 	{
121 		/**
122 		
123 		*/
124 		flagAlignYToVelocity = 0,
125 		/**
126 		
127 		*/
128 		flagRotateY = 1,
129 		/**
130 		
131 		*/
132 		flagMax = 4,
133 	}
134 	/// 
135 	enum EmissionShape : int
136 	{
137 		/**
138 		
139 		*/
140 		emissionShapePoint = 0,
141 		/**
142 		
143 		*/
144 		emissionShapeSphere = 1,
145 		/**
146 		
147 		*/
148 		emissionShapeBox = 2,
149 		/**
150 		
151 		*/
152 		emissionShapePoints = 3,
153 		/**
154 		
155 		*/
156 		emissionShapeDirectedPoints = 4,
157 	}
158 	/// 
159 	enum Parameter : int
160 	{
161 		/**
162 		
163 		*/
164 		paramInitialLinearVelocity = 0,
165 		/**
166 		
167 		*/
168 		paramAngularVelocity = 1,
169 		/**
170 		
171 		*/
172 		paramLinearAccel = 2,
173 		/**
174 		
175 		*/
176 		paramRadialAccel = 3,
177 		/**
178 		
179 		*/
180 		paramTangentialAccel = 4,
181 		/**
182 		
183 		*/
184 		paramDamping = 5,
185 		/**
186 		
187 		*/
188 		paramAngle = 6,
189 		/**
190 		
191 		*/
192 		paramScale = 7,
193 		/**
194 		
195 		*/
196 		paramHueVariation = 8,
197 		/**
198 		
199 		*/
200 		paramAnimSpeed = 9,
201 		/**
202 		
203 		*/
204 		paramAnimOffset = 10,
205 		/**
206 		
207 		*/
208 		paramMax = 11,
209 	}
210 	/// 
211 	enum DrawOrder : int
212 	{
213 		/**
214 		
215 		*/
216 		drawOrderIndex = 0,
217 		/**
218 		
219 		*/
220 		drawOrderLifetime = 1,
221 		/**
222 		
223 		*/
224 		drawOrderViewDepth = 2,
225 	}
226 	/// 
227 	enum Constants : int
228 	{
229 		flagAlignYToVelocity = 0,
230 		paramInitialLinearVelocity = 0,
231 		emissionShapePoint = 0,
232 		drawOrderIndex = 0,
233 		paramAngularVelocity = 1,
234 		drawOrderLifetime = 1,
235 		emissionShapeSphere = 1,
236 		flagRotateY = 1,
237 		drawOrderViewDepth = 2,
238 		paramLinearAccel = 2,
239 		emissionShapeBox = 2,
240 		emissionShapePoints = 3,
241 		paramRadialAccel = 3,
242 		flagMax = 4,
243 		paramTangentialAccel = 4,
244 		emissionShapeDirectedPoints = 4,
245 		paramDamping = 5,
246 		paramAngle = 6,
247 		paramScale = 7,
248 		paramHueVariation = 8,
249 		paramAnimSpeed = 9,
250 		paramAnimOffset = 10,
251 		paramMax = 11,
252 	}
253 	/**
254 	
255 	*/
256 	void setEmitting(in bool emitting)
257 	{
258 		checkClassBinding!(typeof(this))();
259 		ptrcall!(void)(_classBinding.setEmitting, _godot_object, emitting);
260 	}
261 	/**
262 	
263 	*/
264 	void setAmount(in long amount)
265 	{
266 		checkClassBinding!(typeof(this))();
267 		ptrcall!(void)(_classBinding.setAmount, _godot_object, amount);
268 	}
269 	/**
270 	
271 	*/
272 	void setLifetime(in double secs)
273 	{
274 		checkClassBinding!(typeof(this))();
275 		ptrcall!(void)(_classBinding.setLifetime, _godot_object, secs);
276 	}
277 	/**
278 	
279 	*/
280 	void setOneShot(in bool enable)
281 	{
282 		checkClassBinding!(typeof(this))();
283 		ptrcall!(void)(_classBinding.setOneShot, _godot_object, enable);
284 	}
285 	/**
286 	
287 	*/
288 	void setPreProcessTime(in double secs)
289 	{
290 		checkClassBinding!(typeof(this))();
291 		ptrcall!(void)(_classBinding.setPreProcessTime, _godot_object, secs);
292 	}
293 	/**
294 	
295 	*/
296 	void setExplosivenessRatio(in double ratio)
297 	{
298 		checkClassBinding!(typeof(this))();
299 		ptrcall!(void)(_classBinding.setExplosivenessRatio, _godot_object, ratio);
300 	}
301 	/**
302 	
303 	*/
304 	void setRandomnessRatio(in double ratio)
305 	{
306 		checkClassBinding!(typeof(this))();
307 		ptrcall!(void)(_classBinding.setRandomnessRatio, _godot_object, ratio);
308 	}
309 	/**
310 	
311 	*/
312 	void setUseLocalCoordinates(in bool enable)
313 	{
314 		checkClassBinding!(typeof(this))();
315 		ptrcall!(void)(_classBinding.setUseLocalCoordinates, _godot_object, enable);
316 	}
317 	/**
318 	
319 	*/
320 	void setFixedFps(in long fps)
321 	{
322 		checkClassBinding!(typeof(this))();
323 		ptrcall!(void)(_classBinding.setFixedFps, _godot_object, fps);
324 	}
325 	/**
326 	
327 	*/
328 	void setFractionalDelta(in bool enable)
329 	{
330 		checkClassBinding!(typeof(this))();
331 		ptrcall!(void)(_classBinding.setFractionalDelta, _godot_object, enable);
332 	}
333 	/**
334 	
335 	*/
336 	void setSpeedScale(in double scale)
337 	{
338 		checkClassBinding!(typeof(this))();
339 		ptrcall!(void)(_classBinding.setSpeedScale, _godot_object, scale);
340 	}
341 	/**
342 	
343 	*/
344 	bool isEmitting() const
345 	{
346 		checkClassBinding!(typeof(this))();
347 		return ptrcall!(bool)(_classBinding.isEmitting, _godot_object);
348 	}
349 	/**
350 	
351 	*/
352 	long getAmount() const
353 	{
354 		checkClassBinding!(typeof(this))();
355 		return ptrcall!(long)(_classBinding.getAmount, _godot_object);
356 	}
357 	/**
358 	
359 	*/
360 	double getLifetime() const
361 	{
362 		checkClassBinding!(typeof(this))();
363 		return ptrcall!(double)(_classBinding.getLifetime, _godot_object);
364 	}
365 	/**
366 	
367 	*/
368 	bool getOneShot() const
369 	{
370 		checkClassBinding!(typeof(this))();
371 		return ptrcall!(bool)(_classBinding.getOneShot, _godot_object);
372 	}
373 	/**
374 	
375 	*/
376 	double getPreProcessTime() const
377 	{
378 		checkClassBinding!(typeof(this))();
379 		return ptrcall!(double)(_classBinding.getPreProcessTime, _godot_object);
380 	}
381 	/**
382 	
383 	*/
384 	double getExplosivenessRatio() const
385 	{
386 		checkClassBinding!(typeof(this))();
387 		return ptrcall!(double)(_classBinding.getExplosivenessRatio, _godot_object);
388 	}
389 	/**
390 	
391 	*/
392 	double getRandomnessRatio() const
393 	{
394 		checkClassBinding!(typeof(this))();
395 		return ptrcall!(double)(_classBinding.getRandomnessRatio, _godot_object);
396 	}
397 	/**
398 	
399 	*/
400 	bool getUseLocalCoordinates() const
401 	{
402 		checkClassBinding!(typeof(this))();
403 		return ptrcall!(bool)(_classBinding.getUseLocalCoordinates, _godot_object);
404 	}
405 	/**
406 	
407 	*/
408 	long getFixedFps() const
409 	{
410 		checkClassBinding!(typeof(this))();
411 		return ptrcall!(long)(_classBinding.getFixedFps, _godot_object);
412 	}
413 	/**
414 	
415 	*/
416 	bool getFractionalDelta() const
417 	{
418 		checkClassBinding!(typeof(this))();
419 		return ptrcall!(bool)(_classBinding.getFractionalDelta, _godot_object);
420 	}
421 	/**
422 	
423 	*/
424 	double getSpeedScale() const
425 	{
426 		checkClassBinding!(typeof(this))();
427 		return ptrcall!(double)(_classBinding.getSpeedScale, _godot_object);
428 	}
429 	/**
430 	
431 	*/
432 	void setDrawOrder(in long order)
433 	{
434 		checkClassBinding!(typeof(this))();
435 		ptrcall!(void)(_classBinding.setDrawOrder, _godot_object, order);
436 	}
437 	/**
438 	
439 	*/
440 	CPUParticles.DrawOrder getDrawOrder() const
441 	{
442 		checkClassBinding!(typeof(this))();
443 		return ptrcall!(CPUParticles.DrawOrder)(_classBinding.getDrawOrder, _godot_object);
444 	}
445 	/**
446 	
447 	*/
448 	void setMesh(Mesh mesh)
449 	{
450 		checkClassBinding!(typeof(this))();
451 		ptrcall!(void)(_classBinding.setMesh, _godot_object, mesh);
452 	}
453 	/**
454 	
455 	*/
456 	Ref!Mesh getMesh() const
457 	{
458 		checkClassBinding!(typeof(this))();
459 		return ptrcall!(Mesh)(_classBinding.getMesh, _godot_object);
460 	}
461 	/**
462 	
463 	*/
464 	void restart()
465 	{
466 		checkClassBinding!(typeof(this))();
467 		ptrcall!(void)(_classBinding.restart, _godot_object);
468 	}
469 	/**
470 	
471 	*/
472 	void setSpread(in double degrees)
473 	{
474 		checkClassBinding!(typeof(this))();
475 		ptrcall!(void)(_classBinding.setSpread, _godot_object, degrees);
476 	}
477 	/**
478 	
479 	*/
480 	double getSpread() const
481 	{
482 		checkClassBinding!(typeof(this))();
483 		return ptrcall!(double)(_classBinding.getSpread, _godot_object);
484 	}
485 	/**
486 	
487 	*/
488 	void setFlatness(in double amount)
489 	{
490 		checkClassBinding!(typeof(this))();
491 		ptrcall!(void)(_classBinding.setFlatness, _godot_object, amount);
492 	}
493 	/**
494 	
495 	*/
496 	double getFlatness() const
497 	{
498 		checkClassBinding!(typeof(this))();
499 		return ptrcall!(double)(_classBinding.getFlatness, _godot_object);
500 	}
501 	/**
502 	
503 	*/
504 	void setParam(in long param, in double value)
505 	{
506 		checkClassBinding!(typeof(this))();
507 		ptrcall!(void)(_classBinding.setParam, _godot_object, param, value);
508 	}
509 	/**
510 	
511 	*/
512 	double getParam(in long param) const
513 	{
514 		checkClassBinding!(typeof(this))();
515 		return ptrcall!(double)(_classBinding.getParam, _godot_object, param);
516 	}
517 	/**
518 	
519 	*/
520 	void setParamRandomness(in long param, in double randomness)
521 	{
522 		checkClassBinding!(typeof(this))();
523 		ptrcall!(void)(_classBinding.setParamRandomness, _godot_object, param, randomness);
524 	}
525 	/**
526 	
527 	*/
528 	double getParamRandomness(in long param) const
529 	{
530 		checkClassBinding!(typeof(this))();
531 		return ptrcall!(double)(_classBinding.getParamRandomness, _godot_object, param);
532 	}
533 	/**
534 	
535 	*/
536 	void setParamCurve(in long param, Curve curve)
537 	{
538 		checkClassBinding!(typeof(this))();
539 		ptrcall!(void)(_classBinding.setParamCurve, _godot_object, param, curve);
540 	}
541 	/**
542 	
543 	*/
544 	Ref!Curve getParamCurve(in long param) const
545 	{
546 		checkClassBinding!(typeof(this))();
547 		return ptrcall!(Curve)(_classBinding.getParamCurve, _godot_object, param);
548 	}
549 	/**
550 	
551 	*/
552 	void setColor(in Color color)
553 	{
554 		checkClassBinding!(typeof(this))();
555 		ptrcall!(void)(_classBinding.setColor, _godot_object, color);
556 	}
557 	/**
558 	
559 	*/
560 	Color getColor() const
561 	{
562 		checkClassBinding!(typeof(this))();
563 		return ptrcall!(Color)(_classBinding.getColor, _godot_object);
564 	}
565 	/**
566 	
567 	*/
568 	void setColorRamp(Gradient ramp)
569 	{
570 		checkClassBinding!(typeof(this))();
571 		ptrcall!(void)(_classBinding.setColorRamp, _godot_object, ramp);
572 	}
573 	/**
574 	
575 	*/
576 	Ref!Gradient getColorRamp() const
577 	{
578 		checkClassBinding!(typeof(this))();
579 		return ptrcall!(Gradient)(_classBinding.getColorRamp, _godot_object);
580 	}
581 	/**
582 	
583 	*/
584 	void setParticleFlag(in long flag, in bool enable)
585 	{
586 		checkClassBinding!(typeof(this))();
587 		ptrcall!(void)(_classBinding.setParticleFlag, _godot_object, flag, enable);
588 	}
589 	/**
590 	
591 	*/
592 	bool getParticleFlag(in long flag) const
593 	{
594 		checkClassBinding!(typeof(this))();
595 		return ptrcall!(bool)(_classBinding.getParticleFlag, _godot_object, flag);
596 	}
597 	/**
598 	
599 	*/
600 	void setEmissionShape(in long shape)
601 	{
602 		checkClassBinding!(typeof(this))();
603 		ptrcall!(void)(_classBinding.setEmissionShape, _godot_object, shape);
604 	}
605 	/**
606 	
607 	*/
608 	CPUParticles.EmissionShape getEmissionShape() const
609 	{
610 		checkClassBinding!(typeof(this))();
611 		return ptrcall!(CPUParticles.EmissionShape)(_classBinding.getEmissionShape, _godot_object);
612 	}
613 	/**
614 	
615 	*/
616 	void setEmissionSphereRadius(in double radius)
617 	{
618 		checkClassBinding!(typeof(this))();
619 		ptrcall!(void)(_classBinding.setEmissionSphereRadius, _godot_object, radius);
620 	}
621 	/**
622 	
623 	*/
624 	double getEmissionSphereRadius() const
625 	{
626 		checkClassBinding!(typeof(this))();
627 		return ptrcall!(double)(_classBinding.getEmissionSphereRadius, _godot_object);
628 	}
629 	/**
630 	
631 	*/
632 	void setEmissionBoxExtents(in Vector3 extents)
633 	{
634 		checkClassBinding!(typeof(this))();
635 		ptrcall!(void)(_classBinding.setEmissionBoxExtents, _godot_object, extents);
636 	}
637 	/**
638 	
639 	*/
640 	Vector3 getEmissionBoxExtents() const
641 	{
642 		checkClassBinding!(typeof(this))();
643 		return ptrcall!(Vector3)(_classBinding.getEmissionBoxExtents, _godot_object);
644 	}
645 	/**
646 	
647 	*/
648 	void setEmissionPoints(in PoolVector3Array array)
649 	{
650 		checkClassBinding!(typeof(this))();
651 		ptrcall!(void)(_classBinding.setEmissionPoints, _godot_object, array);
652 	}
653 	/**
654 	
655 	*/
656 	PoolVector3Array getEmissionPoints() const
657 	{
658 		checkClassBinding!(typeof(this))();
659 		return ptrcall!(PoolVector3Array)(_classBinding.getEmissionPoints, _godot_object);
660 	}
661 	/**
662 	
663 	*/
664 	void setEmissionNormals(in PoolVector3Array array)
665 	{
666 		checkClassBinding!(typeof(this))();
667 		ptrcall!(void)(_classBinding.setEmissionNormals, _godot_object, array);
668 	}
669 	/**
670 	
671 	*/
672 	PoolVector3Array getEmissionNormals() const
673 	{
674 		checkClassBinding!(typeof(this))();
675 		return ptrcall!(PoolVector3Array)(_classBinding.getEmissionNormals, _godot_object);
676 	}
677 	/**
678 	
679 	*/
680 	void setEmissionColors(in PoolColorArray array)
681 	{
682 		checkClassBinding!(typeof(this))();
683 		ptrcall!(void)(_classBinding.setEmissionColors, _godot_object, array);
684 	}
685 	/**
686 	
687 	*/
688 	PoolColorArray getEmissionColors() const
689 	{
690 		checkClassBinding!(typeof(this))();
691 		return ptrcall!(PoolColorArray)(_classBinding.getEmissionColors, _godot_object);
692 	}
693 	/**
694 	
695 	*/
696 	Vector3 getGravity() const
697 	{
698 		checkClassBinding!(typeof(this))();
699 		return ptrcall!(Vector3)(_classBinding.getGravity, _godot_object);
700 	}
701 	/**
702 	
703 	*/
704 	void setGravity(in Vector3 accel_vec)
705 	{
706 		checkClassBinding!(typeof(this))();
707 		ptrcall!(void)(_classBinding.setGravity, _godot_object, accel_vec);
708 	}
709 	/**
710 	
711 	*/
712 	void convertFromParticles(GodotObject particles)
713 	{
714 		checkClassBinding!(typeof(this))();
715 		ptrcall!(void)(_classBinding.convertFromParticles, _godot_object, particles);
716 	}
717 	/**
718 	
719 	*/
720 	void _updateRenderThread()
721 	{
722 		Array _GODOT_args = Array.empty_array;
723 		String _GODOT_method_name = String("_update_render_thread");
724 		this.callv(_GODOT_method_name, _GODOT_args);
725 	}
726 	/**
727 	
728 	*/
729 	@property bool emitting()
730 	{
731 		return isEmitting();
732 	}
733 	/// ditto
734 	@property void emitting(bool v)
735 	{
736 		setEmitting(v);
737 	}
738 	/**
739 	
740 	*/
741 	@property long amount()
742 	{
743 		return getAmount();
744 	}
745 	/// ditto
746 	@property void amount(long v)
747 	{
748 		setAmount(v);
749 	}
750 	/**
751 	
752 	*/
753 	@property double lifetime()
754 	{
755 		return getLifetime();
756 	}
757 	/// ditto
758 	@property void lifetime(double v)
759 	{
760 		setLifetime(v);
761 	}
762 	/**
763 	
764 	*/
765 	@property bool oneShot()
766 	{
767 		return getOneShot();
768 	}
769 	/// ditto
770 	@property void oneShot(bool v)
771 	{
772 		setOneShot(v);
773 	}
774 	/**
775 	
776 	*/
777 	@property double preprocess()
778 	{
779 		return getPreProcessTime();
780 	}
781 	/// ditto
782 	@property void preprocess(double v)
783 	{
784 		setPreProcessTime(v);
785 	}
786 	/**
787 	
788 	*/
789 	@property double speedScale()
790 	{
791 		return getSpeedScale();
792 	}
793 	/// ditto
794 	@property void speedScale(double v)
795 	{
796 		setSpeedScale(v);
797 	}
798 	/**
799 	
800 	*/
801 	@property double explosiveness()
802 	{
803 		return getExplosivenessRatio();
804 	}
805 	/// ditto
806 	@property void explosiveness(double v)
807 	{
808 		setExplosivenessRatio(v);
809 	}
810 	/**
811 	
812 	*/
813 	@property double randomness()
814 	{
815 		return getRandomnessRatio();
816 	}
817 	/// ditto
818 	@property void randomness(double v)
819 	{
820 		setRandomnessRatio(v);
821 	}
822 	/**
823 	
824 	*/
825 	@property long fixedFps()
826 	{
827 		return getFixedFps();
828 	}
829 	/// ditto
830 	@property void fixedFps(long v)
831 	{
832 		setFixedFps(v);
833 	}
834 	/**
835 	
836 	*/
837 	@property bool fractDelta()
838 	{
839 		return getFractionalDelta();
840 	}
841 	/// ditto
842 	@property void fractDelta(bool v)
843 	{
844 		setFractionalDelta(v);
845 	}
846 	/**
847 	
848 	*/
849 	@property bool localCoords()
850 	{
851 		return getUseLocalCoordinates();
852 	}
853 	/// ditto
854 	@property void localCoords(bool v)
855 	{
856 		setUseLocalCoordinates(v);
857 	}
858 	/**
859 	
860 	*/
861 	@property CPUParticles.DrawOrder drawOrder()
862 	{
863 		return getDrawOrder();
864 	}
865 	/// ditto
866 	@property void drawOrder(long v)
867 	{
868 		setDrawOrder(v);
869 	}
870 	/**
871 	
872 	*/
873 	@property Mesh mesh()
874 	{
875 		return getMesh();
876 	}
877 	/// ditto
878 	@property void mesh(Mesh v)
879 	{
880 		setMesh(v);
881 	}
882 	/**
883 	
884 	*/
885 	@property CPUParticles.EmissionShape emissionShape()
886 	{
887 		return getEmissionShape();
888 	}
889 	/// ditto
890 	@property void emissionShape(long v)
891 	{
892 		setEmissionShape(v);
893 	}
894 	/**
895 	
896 	*/
897 	@property double emissionSphereRadius()
898 	{
899 		return getEmissionSphereRadius();
900 	}
901 	/// ditto
902 	@property void emissionSphereRadius(double v)
903 	{
904 		setEmissionSphereRadius(v);
905 	}
906 	/**
907 	
908 	*/
909 	@property Vector3 emissionBoxExtents()
910 	{
911 		return getEmissionBoxExtents();
912 	}
913 	/// ditto
914 	@property void emissionBoxExtents(Vector3 v)
915 	{
916 		setEmissionBoxExtents(v);
917 	}
918 	/**
919 	
920 	*/
921 	@property PoolVector3Array emissionPoints()
922 	{
923 		return getEmissionPoints();
924 	}
925 	/// ditto
926 	@property void emissionPoints(PoolVector3Array v)
927 	{
928 		setEmissionPoints(v);
929 	}
930 	/**
931 	
932 	*/
933 	@property PoolVector3Array emissionNormals()
934 	{
935 		return getEmissionNormals();
936 	}
937 	/// ditto
938 	@property void emissionNormals(PoolVector3Array v)
939 	{
940 		setEmissionNormals(v);
941 	}
942 	/**
943 	
944 	*/
945 	@property PoolColorArray emissionColors()
946 	{
947 		return getEmissionColors();
948 	}
949 	/// ditto
950 	@property void emissionColors(PoolColorArray v)
951 	{
952 		setEmissionColors(v);
953 	}
954 	/**
955 	
956 	*/
957 	@property bool flagAlignY()
958 	{
959 		return getParticleFlag(0);
960 	}
961 	/// ditto
962 	@property void flagAlignY(bool v)
963 	{
964 		setParticleFlag(0, v);
965 	}
966 	/**
967 	
968 	*/
969 	@property bool flagRotateY()
970 	{
971 		return getParticleFlag(1);
972 	}
973 	/// ditto
974 	@property void flagRotateY(bool v)
975 	{
976 		setParticleFlag(1, v);
977 	}
978 	/**
979 	
980 	*/
981 	@property bool flagDisableZ()
982 	{
983 		return getParticleFlag(2);
984 	}
985 	/// ditto
986 	@property void flagDisableZ(bool v)
987 	{
988 		setParticleFlag(2, v);
989 	}
990 	/**
991 	
992 	*/
993 	@property double spread()
994 	{
995 		return getSpread();
996 	}
997 	/// ditto
998 	@property void spread(double v)
999 	{
1000 		setSpread(v);
1001 	}
1002 	/**
1003 	
1004 	*/
1005 	@property double flatness()
1006 	{
1007 		return getFlatness();
1008 	}
1009 	/// ditto
1010 	@property void flatness(double v)
1011 	{
1012 		setFlatness(v);
1013 	}
1014 	/**
1015 	
1016 	*/
1017 	@property Vector3 gravity()
1018 	{
1019 		return getGravity();
1020 	}
1021 	/// ditto
1022 	@property void gravity(Vector3 v)
1023 	{
1024 		setGravity(v);
1025 	}
1026 	/**
1027 	
1028 	*/
1029 	@property double initialVelocity()
1030 	{
1031 		return getParam(0);
1032 	}
1033 	/// ditto
1034 	@property void initialVelocity(double v)
1035 	{
1036 		setParam(0, v);
1037 	}
1038 	/**
1039 	
1040 	*/
1041 	@property double initialVelocityRandom()
1042 	{
1043 		return getParamRandomness(0);
1044 	}
1045 	/// ditto
1046 	@property void initialVelocityRandom(double v)
1047 	{
1048 		setParamRandomness(0, v);
1049 	}
1050 	/**
1051 	
1052 	*/
1053 	@property double angularVelocity()
1054 	{
1055 		return getParam(1);
1056 	}
1057 	/// ditto
1058 	@property void angularVelocity(double v)
1059 	{
1060 		setParam(1, v);
1061 	}
1062 	/**
1063 	
1064 	*/
1065 	@property double angularVelocityRandom()
1066 	{
1067 		return getParamRandomness(1);
1068 	}
1069 	/// ditto
1070 	@property void angularVelocityRandom(double v)
1071 	{
1072 		setParamRandomness(1, v);
1073 	}
1074 	/**
1075 	
1076 	*/
1077 	@property Curve angularVelocityCurve()
1078 	{
1079 		return getParamCurve(1);
1080 	}
1081 	/// ditto
1082 	@property void angularVelocityCurve(Curve v)
1083 	{
1084 		setParamCurve(1, v);
1085 	}
1086 	/**
1087 	
1088 	*/
1089 	@property double linearAccel()
1090 	{
1091 		return getParam(2);
1092 	}
1093 	/// ditto
1094 	@property void linearAccel(double v)
1095 	{
1096 		setParam(2, v);
1097 	}
1098 	/**
1099 	
1100 	*/
1101 	@property double linearAccelRandom()
1102 	{
1103 		return getParamRandomness(2);
1104 	}
1105 	/// ditto
1106 	@property void linearAccelRandom(double v)
1107 	{
1108 		setParamRandomness(2, v);
1109 	}
1110 	/**
1111 	
1112 	*/
1113 	@property Curve linearAccelCurve()
1114 	{
1115 		return getParamCurve(2);
1116 	}
1117 	/// ditto
1118 	@property void linearAccelCurve(Curve v)
1119 	{
1120 		setParamCurve(2, v);
1121 	}
1122 	/**
1123 	
1124 	*/
1125 	@property double radialAccel()
1126 	{
1127 		return getParam(3);
1128 	}
1129 	/// ditto
1130 	@property void radialAccel(double v)
1131 	{
1132 		setParam(3, v);
1133 	}
1134 	/**
1135 	
1136 	*/
1137 	@property double radialAccelRandom()
1138 	{
1139 		return getParamRandomness(3);
1140 	}
1141 	/// ditto
1142 	@property void radialAccelRandom(double v)
1143 	{
1144 		setParamRandomness(3, v);
1145 	}
1146 	/**
1147 	
1148 	*/
1149 	@property Curve radialAccelCurve()
1150 	{
1151 		return getParamCurve(3);
1152 	}
1153 	/// ditto
1154 	@property void radialAccelCurve(Curve v)
1155 	{
1156 		setParamCurve(3, v);
1157 	}
1158 	/**
1159 	
1160 	*/
1161 	@property double tangentialAccel()
1162 	{
1163 		return getParam(4);
1164 	}
1165 	/// ditto
1166 	@property void tangentialAccel(double v)
1167 	{
1168 		setParam(4, v);
1169 	}
1170 	/**
1171 	
1172 	*/
1173 	@property double tangentialAccelRandom()
1174 	{
1175 		return getParamRandomness(4);
1176 	}
1177 	/// ditto
1178 	@property void tangentialAccelRandom(double v)
1179 	{
1180 		setParamRandomness(4, v);
1181 	}
1182 	/**
1183 	
1184 	*/
1185 	@property Curve tangentialAccelCurve()
1186 	{
1187 		return getParamCurve(4);
1188 	}
1189 	/// ditto
1190 	@property void tangentialAccelCurve(Curve v)
1191 	{
1192 		setParamCurve(4, v);
1193 	}
1194 	/**
1195 	
1196 	*/
1197 	@property double damping()
1198 	{
1199 		return getParam(5);
1200 	}
1201 	/// ditto
1202 	@property void damping(double v)
1203 	{
1204 		setParam(5, v);
1205 	}
1206 	/**
1207 	
1208 	*/
1209 	@property double dampingRandom()
1210 	{
1211 		return getParamRandomness(5);
1212 	}
1213 	/// ditto
1214 	@property void dampingRandom(double v)
1215 	{
1216 		setParamRandomness(5, v);
1217 	}
1218 	/**
1219 	
1220 	*/
1221 	@property Curve dampingCurve()
1222 	{
1223 		return getParamCurve(5);
1224 	}
1225 	/// ditto
1226 	@property void dampingCurve(Curve v)
1227 	{
1228 		setParamCurve(5, v);
1229 	}
1230 	/**
1231 	
1232 	*/
1233 	@property double angle()
1234 	{
1235 		return getParam(6);
1236 	}
1237 	/// ditto
1238 	@property void angle(double v)
1239 	{
1240 		setParam(6, v);
1241 	}
1242 	/**
1243 	
1244 	*/
1245 	@property double angleRandom()
1246 	{
1247 		return getParamRandomness(6);
1248 	}
1249 	/// ditto
1250 	@property void angleRandom(double v)
1251 	{
1252 		setParamRandomness(6, v);
1253 	}
1254 	/**
1255 	
1256 	*/
1257 	@property Curve angleCurve()
1258 	{
1259 		return getParamCurve(6);
1260 	}
1261 	/// ditto
1262 	@property void angleCurve(Curve v)
1263 	{
1264 		setParamCurve(6, v);
1265 	}
1266 	/**
1267 	
1268 	*/
1269 	@property double scale()
1270 	{
1271 		return getParam(7);
1272 	}
1273 	/// ditto
1274 	@property void scale(double v)
1275 	{
1276 		setParam(7, v);
1277 	}
1278 	/**
1279 	
1280 	*/
1281 	@property double scaleRandom()
1282 	{
1283 		return getParamRandomness(7);
1284 	}
1285 	/// ditto
1286 	@property void scaleRandom(double v)
1287 	{
1288 		setParamRandomness(7, v);
1289 	}
1290 	/**
1291 	
1292 	*/
1293 	@property Curve scaleCurve()
1294 	{
1295 		return getParamCurve(7);
1296 	}
1297 	/// ditto
1298 	@property void scaleCurve(Curve v)
1299 	{
1300 		setParamCurve(7, v);
1301 	}
1302 	/**
1303 	
1304 	*/
1305 	@property Color color()
1306 	{
1307 		return getColor();
1308 	}
1309 	/// ditto
1310 	@property void color(Color v)
1311 	{
1312 		setColor(v);
1313 	}
1314 	/**
1315 	
1316 	*/
1317 	@property Gradient colorRamp()
1318 	{
1319 		return getColorRamp();
1320 	}
1321 	/// ditto
1322 	@property void colorRamp(Gradient v)
1323 	{
1324 		setColorRamp(v);
1325 	}
1326 	/**
1327 	
1328 	*/
1329 	@property double hueVariation()
1330 	{
1331 		return getParam(8);
1332 	}
1333 	/// ditto
1334 	@property void hueVariation(double v)
1335 	{
1336 		setParam(8, v);
1337 	}
1338 	/**
1339 	
1340 	*/
1341 	@property double hueVariationRandom()
1342 	{
1343 		return getParamRandomness(8);
1344 	}
1345 	/// ditto
1346 	@property void hueVariationRandom(double v)
1347 	{
1348 		setParamRandomness(8, v);
1349 	}
1350 	/**
1351 	
1352 	*/
1353 	@property Curve hueVariationCurve()
1354 	{
1355 		return getParamCurve(8);
1356 	}
1357 	/// ditto
1358 	@property void hueVariationCurve(Curve v)
1359 	{
1360 		setParamCurve(8, v);
1361 	}
1362 	/**
1363 	
1364 	*/
1365 	@property double animSpeed()
1366 	{
1367 		return getParam(9);
1368 	}
1369 	/// ditto
1370 	@property void animSpeed(double v)
1371 	{
1372 		setParam(9, v);
1373 	}
1374 	/**
1375 	
1376 	*/
1377 	@property double animSpeedRandom()
1378 	{
1379 		return getParamRandomness(9);
1380 	}
1381 	/// ditto
1382 	@property void animSpeedRandom(double v)
1383 	{
1384 		setParamRandomness(9, v);
1385 	}
1386 	/**
1387 	
1388 	*/
1389 	@property Curve animSpeedCurve()
1390 	{
1391 		return getParamCurve(9);
1392 	}
1393 	/// ditto
1394 	@property void animSpeedCurve(Curve v)
1395 	{
1396 		setParamCurve(9, v);
1397 	}
1398 	/**
1399 	
1400 	*/
1401 	@property double animOffset()
1402 	{
1403 		return getParam(10);
1404 	}
1405 	/// ditto
1406 	@property void animOffset(double v)
1407 	{
1408 		setParam(10, v);
1409 	}
1410 	/**
1411 	
1412 	*/
1413 	@property double animOffsetRandom()
1414 	{
1415 		return getParamRandomness(10);
1416 	}
1417 	/// ditto
1418 	@property void animOffsetRandom(double v)
1419 	{
1420 		setParamRandomness(10, v);
1421 	}
1422 	/**
1423 	
1424 	*/
1425 	@property Curve animOffsetCurve()
1426 	{
1427 		return getParamCurve(10);
1428 	}
1429 	/// ditto
1430 	@property void animOffsetCurve(Curve v)
1431 	{
1432 		setParamCurve(10, v);
1433 	}
1434 	/**
1435 	
1436 	*/
1437 	@property bool animLoop()
1438 	{
1439 		return getParticleFlag(3);
1440 	}
1441 	/// ditto
1442 	@property void animLoop(bool v)
1443 	{
1444 		setParticleFlag(3, v);
1445 	}
1446 }