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.navigationmesh;
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.resource;
25 import godot.mesh;
26 /**
27 
28 */
29 @GodotBaseClass struct NavigationMesh
30 {
31 	package(godot) enum string _GODOT_internal_name = "NavigationMesh";
32 public:
33 @nogc nothrow:
34 	union { /** */ godot_object _godot_object; /** */ Resource _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 GDNativeClassBinding
39 	{
40 		__gshared:
41 		@GodotName("_get_polygons") GodotMethod!(Array) _getPolygons;
42 		@GodotName("_set_polygons") GodotMethod!(void, Array) _setPolygons;
43 		@GodotName("add_polygon") GodotMethod!(void, PoolIntArray) addPolygon;
44 		@GodotName("clear_polygons") GodotMethod!(void) clearPolygons;
45 		@GodotName("create_from_mesh") GodotMethod!(void, Mesh) createFromMesh;
46 		@GodotName("get_agent_height") GodotMethod!(double) getAgentHeight;
47 		@GodotName("get_agent_max_climb") GodotMethod!(double) getAgentMaxClimb;
48 		@GodotName("get_agent_max_slope") GodotMethod!(double) getAgentMaxSlope;
49 		@GodotName("get_agent_radius") GodotMethod!(double) getAgentRadius;
50 		@GodotName("get_cell_height") GodotMethod!(double) getCellHeight;
51 		@GodotName("get_cell_size") GodotMethod!(double) getCellSize;
52 		@GodotName("get_collision_mask") GodotMethod!(long) getCollisionMask;
53 		@GodotName("get_collision_mask_bit") GodotMethod!(bool, long) getCollisionMaskBit;
54 		@GodotName("get_detail_sample_distance") GodotMethod!(double) getDetailSampleDistance;
55 		@GodotName("get_detail_sample_max_error") GodotMethod!(double) getDetailSampleMaxError;
56 		@GodotName("get_edge_max_error") GodotMethod!(double) getEdgeMaxError;
57 		@GodotName("get_edge_max_length") GodotMethod!(double) getEdgeMaxLength;
58 		@GodotName("get_filter_ledge_spans") GodotMethod!(bool) getFilterLedgeSpans;
59 		@GodotName("get_filter_low_hanging_obstacles") GodotMethod!(bool) getFilterLowHangingObstacles;
60 		@GodotName("get_filter_walkable_low_height_spans") GodotMethod!(bool) getFilterWalkableLowHeightSpans;
61 		@GodotName("get_parsed_geometry_type") GodotMethod!(long) getParsedGeometryType;
62 		@GodotName("get_polygon") GodotMethod!(PoolIntArray, long) getPolygon;
63 		@GodotName("get_polygon_count") GodotMethod!(long) getPolygonCount;
64 		@GodotName("get_region_merge_size") GodotMethod!(double) getRegionMergeSize;
65 		@GodotName("get_region_min_size") GodotMethod!(double) getRegionMinSize;
66 		@GodotName("get_sample_partition_type") GodotMethod!(long) getSamplePartitionType;
67 		@GodotName("get_source_geometry_mode") GodotMethod!(long) getSourceGeometryMode;
68 		@GodotName("get_source_group_name") GodotMethod!(String) getSourceGroupName;
69 		@GodotName("get_vertices") GodotMethod!(PoolVector3Array) getVertices;
70 		@GodotName("get_verts_per_poly") GodotMethod!(double) getVertsPerPoly;
71 		@GodotName("set_agent_height") GodotMethod!(void, double) setAgentHeight;
72 		@GodotName("set_agent_max_climb") GodotMethod!(void, double) setAgentMaxClimb;
73 		@GodotName("set_agent_max_slope") GodotMethod!(void, double) setAgentMaxSlope;
74 		@GodotName("set_agent_radius") GodotMethod!(void, double) setAgentRadius;
75 		@GodotName("set_cell_height") GodotMethod!(void, double) setCellHeight;
76 		@GodotName("set_cell_size") GodotMethod!(void, double) setCellSize;
77 		@GodotName("set_collision_mask") GodotMethod!(void, long) setCollisionMask;
78 		@GodotName("set_collision_mask_bit") GodotMethod!(void, long, bool) setCollisionMaskBit;
79 		@GodotName("set_detail_sample_distance") GodotMethod!(void, double) setDetailSampleDistance;
80 		@GodotName("set_detail_sample_max_error") GodotMethod!(void, double) setDetailSampleMaxError;
81 		@GodotName("set_edge_max_error") GodotMethod!(void, double) setEdgeMaxError;
82 		@GodotName("set_edge_max_length") GodotMethod!(void, double) setEdgeMaxLength;
83 		@GodotName("set_filter_ledge_spans") GodotMethod!(void, bool) setFilterLedgeSpans;
84 		@GodotName("set_filter_low_hanging_obstacles") GodotMethod!(void, bool) setFilterLowHangingObstacles;
85 		@GodotName("set_filter_walkable_low_height_spans") GodotMethod!(void, bool) setFilterWalkableLowHeightSpans;
86 		@GodotName("set_parsed_geometry_type") GodotMethod!(void, long) setParsedGeometryType;
87 		@GodotName("set_region_merge_size") GodotMethod!(void, double) setRegionMergeSize;
88 		@GodotName("set_region_min_size") GodotMethod!(void, double) setRegionMinSize;
89 		@GodotName("set_sample_partition_type") GodotMethod!(void, long) setSamplePartitionType;
90 		@GodotName("set_source_geometry_mode") GodotMethod!(void, long) setSourceGeometryMode;
91 		@GodotName("set_source_group_name") GodotMethod!(void, String) setSourceGroupName;
92 		@GodotName("set_vertices") GodotMethod!(void, PoolVector3Array) setVertices;
93 		@GodotName("set_verts_per_poly") GodotMethod!(void, double) setVertsPerPoly;
94 	}
95 	/// 
96 	pragma(inline, true) bool opEquals(in NavigationMesh other) const
97 	{ return _godot_object.ptr is other._godot_object.ptr; }
98 	/// 
99 	pragma(inline, true) typeof(null) opAssign(typeof(null) n)
100 	{ _godot_object.ptr = n; return null; }
101 	/// 
102 	pragma(inline, true) bool opEquals(typeof(null) n) const
103 	{ return _godot_object.ptr is n; }
104 	/// 
105 	size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; }
106 	mixin baseCasts;
107 	/// Construct a new instance of NavigationMesh.
108 	/// Note: use `memnew!NavigationMesh` instead.
109 	static NavigationMesh _new()
110 	{
111 		static godot_class_constructor constructor;
112 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("NavigationMesh");
113 		if(constructor is null) return typeof(this).init;
114 		return cast(NavigationMesh)(constructor());
115 	}
116 	@disable new(size_t s);
117 	/// 
118 	enum Constants : int
119 	{
120 		/**
121 		
122 		*/
123 		samplePartitionWatershed = 0,
124 		/**
125 		
126 		*/
127 		parsedGeometryMeshInstances = 0,
128 		/**
129 		
130 		*/
131 		parsedGeometryStaticColliders = 1,
132 		/**
133 		
134 		*/
135 		samplePartitionMonotone = 1,
136 		/**
137 		
138 		*/
139 		parsedGeometryBoth = 2,
140 		/**
141 		
142 		*/
143 		samplePartitionLayers = 2,
144 	}
145 	/**
146 	
147 	*/
148 	Array _getPolygons() const
149 	{
150 		Array _GODOT_args = Array.make();
151 		String _GODOT_method_name = String("_get_polygons");
152 		return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!Array);
153 	}
154 	/**
155 	
156 	*/
157 	void _setPolygons(in Array polygons)
158 	{
159 		Array _GODOT_args = Array.make();
160 		_GODOT_args.append(polygons);
161 		String _GODOT_method_name = String("_set_polygons");
162 		this.callv(_GODOT_method_name, _GODOT_args);
163 	}
164 	/**
165 	
166 	*/
167 	void addPolygon(in PoolIntArray polygon)
168 	{
169 		checkClassBinding!(typeof(this))();
170 		ptrcall!(void)(GDNativeClassBinding.addPolygon, _godot_object, polygon);
171 	}
172 	/**
173 	
174 	*/
175 	void clearPolygons()
176 	{
177 		checkClassBinding!(typeof(this))();
178 		ptrcall!(void)(GDNativeClassBinding.clearPolygons, _godot_object);
179 	}
180 	/**
181 	
182 	*/
183 	void createFromMesh(Mesh mesh)
184 	{
185 		checkClassBinding!(typeof(this))();
186 		ptrcall!(void)(GDNativeClassBinding.createFromMesh, _godot_object, mesh);
187 	}
188 	/**
189 	
190 	*/
191 	double getAgentHeight() const
192 	{
193 		checkClassBinding!(typeof(this))();
194 		return ptrcall!(double)(GDNativeClassBinding.getAgentHeight, _godot_object);
195 	}
196 	/**
197 	
198 	*/
199 	double getAgentMaxClimb() const
200 	{
201 		checkClassBinding!(typeof(this))();
202 		return ptrcall!(double)(GDNativeClassBinding.getAgentMaxClimb, _godot_object);
203 	}
204 	/**
205 	
206 	*/
207 	double getAgentMaxSlope() const
208 	{
209 		checkClassBinding!(typeof(this))();
210 		return ptrcall!(double)(GDNativeClassBinding.getAgentMaxSlope, _godot_object);
211 	}
212 	/**
213 	
214 	*/
215 	double getAgentRadius()
216 	{
217 		checkClassBinding!(typeof(this))();
218 		return ptrcall!(double)(GDNativeClassBinding.getAgentRadius, _godot_object);
219 	}
220 	/**
221 	
222 	*/
223 	double getCellHeight() const
224 	{
225 		checkClassBinding!(typeof(this))();
226 		return ptrcall!(double)(GDNativeClassBinding.getCellHeight, _godot_object);
227 	}
228 	/**
229 	
230 	*/
231 	double getCellSize() const
232 	{
233 		checkClassBinding!(typeof(this))();
234 		return ptrcall!(double)(GDNativeClassBinding.getCellSize, _godot_object);
235 	}
236 	/**
237 	
238 	*/
239 	long getCollisionMask() const
240 	{
241 		checkClassBinding!(typeof(this))();
242 		return ptrcall!(long)(GDNativeClassBinding.getCollisionMask, _godot_object);
243 	}
244 	/**
245 	
246 	*/
247 	bool getCollisionMaskBit(in long bit) const
248 	{
249 		checkClassBinding!(typeof(this))();
250 		return ptrcall!(bool)(GDNativeClassBinding.getCollisionMaskBit, _godot_object, bit);
251 	}
252 	/**
253 	
254 	*/
255 	double getDetailSampleDistance() const
256 	{
257 		checkClassBinding!(typeof(this))();
258 		return ptrcall!(double)(GDNativeClassBinding.getDetailSampleDistance, _godot_object);
259 	}
260 	/**
261 	
262 	*/
263 	double getDetailSampleMaxError() const
264 	{
265 		checkClassBinding!(typeof(this))();
266 		return ptrcall!(double)(GDNativeClassBinding.getDetailSampleMaxError, _godot_object);
267 	}
268 	/**
269 	
270 	*/
271 	double getEdgeMaxError() const
272 	{
273 		checkClassBinding!(typeof(this))();
274 		return ptrcall!(double)(GDNativeClassBinding.getEdgeMaxError, _godot_object);
275 	}
276 	/**
277 	
278 	*/
279 	double getEdgeMaxLength() const
280 	{
281 		checkClassBinding!(typeof(this))();
282 		return ptrcall!(double)(GDNativeClassBinding.getEdgeMaxLength, _godot_object);
283 	}
284 	/**
285 	
286 	*/
287 	bool getFilterLedgeSpans() const
288 	{
289 		checkClassBinding!(typeof(this))();
290 		return ptrcall!(bool)(GDNativeClassBinding.getFilterLedgeSpans, _godot_object);
291 	}
292 	/**
293 	
294 	*/
295 	bool getFilterLowHangingObstacles() const
296 	{
297 		checkClassBinding!(typeof(this))();
298 		return ptrcall!(bool)(GDNativeClassBinding.getFilterLowHangingObstacles, _godot_object);
299 	}
300 	/**
301 	
302 	*/
303 	bool getFilterWalkableLowHeightSpans() const
304 	{
305 		checkClassBinding!(typeof(this))();
306 		return ptrcall!(bool)(GDNativeClassBinding.getFilterWalkableLowHeightSpans, _godot_object);
307 	}
308 	/**
309 	
310 	*/
311 	long getParsedGeometryType() const
312 	{
313 		checkClassBinding!(typeof(this))();
314 		return ptrcall!(long)(GDNativeClassBinding.getParsedGeometryType, _godot_object);
315 	}
316 	/**
317 	
318 	*/
319 	PoolIntArray getPolygon(in long idx)
320 	{
321 		checkClassBinding!(typeof(this))();
322 		return ptrcall!(PoolIntArray)(GDNativeClassBinding.getPolygon, _godot_object, idx);
323 	}
324 	/**
325 	
326 	*/
327 	long getPolygonCount() const
328 	{
329 		checkClassBinding!(typeof(this))();
330 		return ptrcall!(long)(GDNativeClassBinding.getPolygonCount, _godot_object);
331 	}
332 	/**
333 	
334 	*/
335 	double getRegionMergeSize() const
336 	{
337 		checkClassBinding!(typeof(this))();
338 		return ptrcall!(double)(GDNativeClassBinding.getRegionMergeSize, _godot_object);
339 	}
340 	/**
341 	
342 	*/
343 	double getRegionMinSize() const
344 	{
345 		checkClassBinding!(typeof(this))();
346 		return ptrcall!(double)(GDNativeClassBinding.getRegionMinSize, _godot_object);
347 	}
348 	/**
349 	
350 	*/
351 	long getSamplePartitionType() const
352 	{
353 		checkClassBinding!(typeof(this))();
354 		return ptrcall!(long)(GDNativeClassBinding.getSamplePartitionType, _godot_object);
355 	}
356 	/**
357 	
358 	*/
359 	long getSourceGeometryMode() const
360 	{
361 		checkClassBinding!(typeof(this))();
362 		return ptrcall!(long)(GDNativeClassBinding.getSourceGeometryMode, _godot_object);
363 	}
364 	/**
365 	
366 	*/
367 	String getSourceGroupName() const
368 	{
369 		checkClassBinding!(typeof(this))();
370 		return ptrcall!(String)(GDNativeClassBinding.getSourceGroupName, _godot_object);
371 	}
372 	/**
373 	
374 	*/
375 	PoolVector3Array getVertices() const
376 	{
377 		checkClassBinding!(typeof(this))();
378 		return ptrcall!(PoolVector3Array)(GDNativeClassBinding.getVertices, _godot_object);
379 	}
380 	/**
381 	
382 	*/
383 	double getVertsPerPoly() const
384 	{
385 		checkClassBinding!(typeof(this))();
386 		return ptrcall!(double)(GDNativeClassBinding.getVertsPerPoly, _godot_object);
387 	}
388 	/**
389 	
390 	*/
391 	void setAgentHeight(in double agent_height)
392 	{
393 		checkClassBinding!(typeof(this))();
394 		ptrcall!(void)(GDNativeClassBinding.setAgentHeight, _godot_object, agent_height);
395 	}
396 	/**
397 	
398 	*/
399 	void setAgentMaxClimb(in double agent_max_climb)
400 	{
401 		checkClassBinding!(typeof(this))();
402 		ptrcall!(void)(GDNativeClassBinding.setAgentMaxClimb, _godot_object, agent_max_climb);
403 	}
404 	/**
405 	
406 	*/
407 	void setAgentMaxSlope(in double agent_max_slope)
408 	{
409 		checkClassBinding!(typeof(this))();
410 		ptrcall!(void)(GDNativeClassBinding.setAgentMaxSlope, _godot_object, agent_max_slope);
411 	}
412 	/**
413 	
414 	*/
415 	void setAgentRadius(in double agent_radius)
416 	{
417 		checkClassBinding!(typeof(this))();
418 		ptrcall!(void)(GDNativeClassBinding.setAgentRadius, _godot_object, agent_radius);
419 	}
420 	/**
421 	
422 	*/
423 	void setCellHeight(in double cell_height)
424 	{
425 		checkClassBinding!(typeof(this))();
426 		ptrcall!(void)(GDNativeClassBinding.setCellHeight, _godot_object, cell_height);
427 	}
428 	/**
429 	
430 	*/
431 	void setCellSize(in double cell_size)
432 	{
433 		checkClassBinding!(typeof(this))();
434 		ptrcall!(void)(GDNativeClassBinding.setCellSize, _godot_object, cell_size);
435 	}
436 	/**
437 	
438 	*/
439 	void setCollisionMask(in long mask)
440 	{
441 		checkClassBinding!(typeof(this))();
442 		ptrcall!(void)(GDNativeClassBinding.setCollisionMask, _godot_object, mask);
443 	}
444 	/**
445 	
446 	*/
447 	void setCollisionMaskBit(in long bit, in bool value)
448 	{
449 		checkClassBinding!(typeof(this))();
450 		ptrcall!(void)(GDNativeClassBinding.setCollisionMaskBit, _godot_object, bit, value);
451 	}
452 	/**
453 	
454 	*/
455 	void setDetailSampleDistance(in double detail_sample_dist)
456 	{
457 		checkClassBinding!(typeof(this))();
458 		ptrcall!(void)(GDNativeClassBinding.setDetailSampleDistance, _godot_object, detail_sample_dist);
459 	}
460 	/**
461 	
462 	*/
463 	void setDetailSampleMaxError(in double detail_sample_max_error)
464 	{
465 		checkClassBinding!(typeof(this))();
466 		ptrcall!(void)(GDNativeClassBinding.setDetailSampleMaxError, _godot_object, detail_sample_max_error);
467 	}
468 	/**
469 	
470 	*/
471 	void setEdgeMaxError(in double edge_max_error)
472 	{
473 		checkClassBinding!(typeof(this))();
474 		ptrcall!(void)(GDNativeClassBinding.setEdgeMaxError, _godot_object, edge_max_error);
475 	}
476 	/**
477 	
478 	*/
479 	void setEdgeMaxLength(in double edge_max_length)
480 	{
481 		checkClassBinding!(typeof(this))();
482 		ptrcall!(void)(GDNativeClassBinding.setEdgeMaxLength, _godot_object, edge_max_length);
483 	}
484 	/**
485 	
486 	*/
487 	void setFilterLedgeSpans(in bool filter_ledge_spans)
488 	{
489 		checkClassBinding!(typeof(this))();
490 		ptrcall!(void)(GDNativeClassBinding.setFilterLedgeSpans, _godot_object, filter_ledge_spans);
491 	}
492 	/**
493 	
494 	*/
495 	void setFilterLowHangingObstacles(in bool filter_low_hanging_obstacles)
496 	{
497 		checkClassBinding!(typeof(this))();
498 		ptrcall!(void)(GDNativeClassBinding.setFilterLowHangingObstacles, _godot_object, filter_low_hanging_obstacles);
499 	}
500 	/**
501 	
502 	*/
503 	void setFilterWalkableLowHeightSpans(in bool filter_walkable_low_height_spans)
504 	{
505 		checkClassBinding!(typeof(this))();
506 		ptrcall!(void)(GDNativeClassBinding.setFilterWalkableLowHeightSpans, _godot_object, filter_walkable_low_height_spans);
507 	}
508 	/**
509 	
510 	*/
511 	void setParsedGeometryType(in long geometry_type)
512 	{
513 		checkClassBinding!(typeof(this))();
514 		ptrcall!(void)(GDNativeClassBinding.setParsedGeometryType, _godot_object, geometry_type);
515 	}
516 	/**
517 	
518 	*/
519 	void setRegionMergeSize(in double region_merge_size)
520 	{
521 		checkClassBinding!(typeof(this))();
522 		ptrcall!(void)(GDNativeClassBinding.setRegionMergeSize, _godot_object, region_merge_size);
523 	}
524 	/**
525 	
526 	*/
527 	void setRegionMinSize(in double region_min_size)
528 	{
529 		checkClassBinding!(typeof(this))();
530 		ptrcall!(void)(GDNativeClassBinding.setRegionMinSize, _godot_object, region_min_size);
531 	}
532 	/**
533 	
534 	*/
535 	void setSamplePartitionType(in long sample_partition_type)
536 	{
537 		checkClassBinding!(typeof(this))();
538 		ptrcall!(void)(GDNativeClassBinding.setSamplePartitionType, _godot_object, sample_partition_type);
539 	}
540 	/**
541 	
542 	*/
543 	void setSourceGeometryMode(in long mask)
544 	{
545 		checkClassBinding!(typeof(this))();
546 		ptrcall!(void)(GDNativeClassBinding.setSourceGeometryMode, _godot_object, mask);
547 	}
548 	/**
549 	
550 	*/
551 	void setSourceGroupName(in String mask)
552 	{
553 		checkClassBinding!(typeof(this))();
554 		ptrcall!(void)(GDNativeClassBinding.setSourceGroupName, _godot_object, mask);
555 	}
556 	/**
557 	
558 	*/
559 	void setVertices(in PoolVector3Array vertices)
560 	{
561 		checkClassBinding!(typeof(this))();
562 		ptrcall!(void)(GDNativeClassBinding.setVertices, _godot_object, vertices);
563 	}
564 	/**
565 	
566 	*/
567 	void setVertsPerPoly(in double verts_per_poly)
568 	{
569 		checkClassBinding!(typeof(this))();
570 		ptrcall!(void)(GDNativeClassBinding.setVertsPerPoly, _godot_object, verts_per_poly);
571 	}
572 	/**
573 	
574 	*/
575 	@property double agentHeight()
576 	{
577 		return getAgentHeight();
578 	}
579 	/// ditto
580 	@property void agentHeight(double v)
581 	{
582 		setAgentHeight(v);
583 	}
584 	/**
585 	
586 	*/
587 	@property double agentMaxClimb()
588 	{
589 		return getAgentMaxClimb();
590 	}
591 	/// ditto
592 	@property void agentMaxClimb(double v)
593 	{
594 		setAgentMaxClimb(v);
595 	}
596 	/**
597 	
598 	*/
599 	@property double agentMaxSlope()
600 	{
601 		return getAgentMaxSlope();
602 	}
603 	/// ditto
604 	@property void agentMaxSlope(double v)
605 	{
606 		setAgentMaxSlope(v);
607 	}
608 	/**
609 	
610 	*/
611 	@property double agentRadius()
612 	{
613 		return getAgentRadius();
614 	}
615 	/// ditto
616 	@property void agentRadius(double v)
617 	{
618 		setAgentRadius(v);
619 	}
620 	/**
621 	
622 	*/
623 	@property double cellHeight()
624 	{
625 		return getCellHeight();
626 	}
627 	/// ditto
628 	@property void cellHeight(double v)
629 	{
630 		setCellHeight(v);
631 	}
632 	/**
633 	
634 	*/
635 	@property double cellSize()
636 	{
637 		return getCellSize();
638 	}
639 	/// ditto
640 	@property void cellSize(double v)
641 	{
642 		setCellSize(v);
643 	}
644 	/**
645 	
646 	*/
647 	@property double detailSampleDistance()
648 	{
649 		return getDetailSampleDistance();
650 	}
651 	/// ditto
652 	@property void detailSampleDistance(double v)
653 	{
654 		setDetailSampleDistance(v);
655 	}
656 	/**
657 	
658 	*/
659 	@property double detailSampleMaxError()
660 	{
661 		return getDetailSampleMaxError();
662 	}
663 	/// ditto
664 	@property void detailSampleMaxError(double v)
665 	{
666 		setDetailSampleMaxError(v);
667 	}
668 	/**
669 	
670 	*/
671 	@property double edgeMaxError()
672 	{
673 		return getEdgeMaxError();
674 	}
675 	/// ditto
676 	@property void edgeMaxError(double v)
677 	{
678 		setEdgeMaxError(v);
679 	}
680 	/**
681 	
682 	*/
683 	@property double edgeMaxLength()
684 	{
685 		return getEdgeMaxLength();
686 	}
687 	/// ditto
688 	@property void edgeMaxLength(double v)
689 	{
690 		setEdgeMaxLength(v);
691 	}
692 	/**
693 	
694 	*/
695 	@property bool filterFilterWalkableLowHeightSpans()
696 	{
697 		return getFilterWalkableLowHeightSpans();
698 	}
699 	/// ditto
700 	@property void filterFilterWalkableLowHeightSpans(bool v)
701 	{
702 		setFilterWalkableLowHeightSpans(v);
703 	}
704 	/**
705 	
706 	*/
707 	@property bool filterLedgeSpans()
708 	{
709 		return getFilterLedgeSpans();
710 	}
711 	/// ditto
712 	@property void filterLedgeSpans(bool v)
713 	{
714 		setFilterLedgeSpans(v);
715 	}
716 	/**
717 	
718 	*/
719 	@property bool filterLowHangingObstacles()
720 	{
721 		return getFilterLowHangingObstacles();
722 	}
723 	/// ditto
724 	@property void filterLowHangingObstacles(bool v)
725 	{
726 		setFilterLowHangingObstacles(v);
727 	}
728 	/**
729 	
730 	*/
731 	@property long geometryCollisionMask()
732 	{
733 		return getCollisionMask();
734 	}
735 	/// ditto
736 	@property void geometryCollisionMask(long v)
737 	{
738 		setCollisionMask(v);
739 	}
740 	/**
741 	
742 	*/
743 	@property long geometryParsedGeometryType()
744 	{
745 		return getParsedGeometryType();
746 	}
747 	/// ditto
748 	@property void geometryParsedGeometryType(long v)
749 	{
750 		setParsedGeometryType(v);
751 	}
752 	/**
753 	
754 	*/
755 	@property long geometrySourceGeometryMode()
756 	{
757 		return getSourceGeometryMode();
758 	}
759 	/// ditto
760 	@property void geometrySourceGeometryMode(long v)
761 	{
762 		setSourceGeometryMode(v);
763 	}
764 	/**
765 	
766 	*/
767 	@property String geometrySourceGroupName()
768 	{
769 		return getSourceGroupName();
770 	}
771 	/// ditto
772 	@property void geometrySourceGroupName(String v)
773 	{
774 		setSourceGroupName(v);
775 	}
776 	/**
777 	
778 	*/
779 	@property double polygonVertsPerPoly()
780 	{
781 		return getVertsPerPoly();
782 	}
783 	/// ditto
784 	@property void polygonVertsPerPoly(double v)
785 	{
786 		setVertsPerPoly(v);
787 	}
788 	/**
789 	
790 	*/
791 	@property Array polygons()
792 	{
793 		return _getPolygons();
794 	}
795 	/// ditto
796 	@property void polygons(Array v)
797 	{
798 		_setPolygons(v);
799 	}
800 	/**
801 	
802 	*/
803 	@property double regionMergeSize()
804 	{
805 		return getRegionMergeSize();
806 	}
807 	/// ditto
808 	@property void regionMergeSize(double v)
809 	{
810 		setRegionMergeSize(v);
811 	}
812 	/**
813 	
814 	*/
815 	@property double regionMinSize()
816 	{
817 		return getRegionMinSize();
818 	}
819 	/// ditto
820 	@property void regionMinSize(double v)
821 	{
822 		setRegionMinSize(v);
823 	}
824 	/**
825 	
826 	*/
827 	@property long samplePartitionTypeSamplePartitionType()
828 	{
829 		return getSamplePartitionType();
830 	}
831 	/// ditto
832 	@property void samplePartitionTypeSamplePartitionType(long v)
833 	{
834 		setSamplePartitionType(v);
835 	}
836 	/**
837 	
838 	*/
839 	@property PoolVector3Array vertices()
840 	{
841 		return getVertices();
842 	}
843 	/// ditto
844 	@property void vertices(PoolVector3Array v)
845 	{
846 		setVertices(v);
847 	}
848 }