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.bakedlightmapdata;
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 /**
26 
27 */
28 @GodotBaseClass struct BakedLightmapData
29 {
30 	package(godot) enum string _GODOT_internal_name = "BakedLightmapData";
31 public:
32 @nogc nothrow:
33 	union { /** */ godot_object _godot_object; /** */ Resource _GODOT_base; }
34 	alias _GODOT_base this;
35 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
36 	package(godot) __gshared bool _classBindingInitialized = false;
37 	package(godot) static struct GDNativeClassBinding
38 	{
39 		__gshared:
40 		@GodotName("_get_user_data") GodotMethod!(Array) _getUserData;
41 		@GodotName("_set_user_data") GodotMethod!(void, Array) _setUserData;
42 		@GodotName("add_user") GodotMethod!(void, NodePath, Resource, long, Rect2, long) addUser;
43 		@GodotName("clear_data") GodotMethod!(void) clearData;
44 		@GodotName("clear_users") GodotMethod!(void) clearUsers;
45 		@GodotName("get_bounds") GodotMethod!(AABB) getBounds;
46 		@GodotName("get_cell_space_transform") GodotMethod!(Transform) getCellSpaceTransform;
47 		@GodotName("get_cell_subdiv") GodotMethod!(long) getCellSubdiv;
48 		@GodotName("get_energy") GodotMethod!(double) getEnergy;
49 		@GodotName("get_octree") GodotMethod!(PoolByteArray) getOctree;
50 		@GodotName("get_user_count") GodotMethod!(long) getUserCount;
51 		@GodotName("get_user_lightmap") GodotMethod!(Resource, long) getUserLightmap;
52 		@GodotName("get_user_path") GodotMethod!(NodePath, long) getUserPath;
53 		@GodotName("is_interior") GodotMethod!(bool) isInterior;
54 		@GodotName("set_bounds") GodotMethod!(void, AABB) setBounds;
55 		@GodotName("set_cell_space_transform") GodotMethod!(void, Transform) setCellSpaceTransform;
56 		@GodotName("set_cell_subdiv") GodotMethod!(void, long) setCellSubdiv;
57 		@GodotName("set_energy") GodotMethod!(void, double) setEnergy;
58 		@GodotName("set_interior") GodotMethod!(void, bool) setInterior;
59 		@GodotName("set_octree") GodotMethod!(void, PoolByteArray) setOctree;
60 	}
61 	/// 
62 	pragma(inline, true) bool opEquals(in BakedLightmapData other) const
63 	{ return _godot_object.ptr is other._godot_object.ptr; }
64 	/// 
65 	pragma(inline, true) typeof(null) opAssign(typeof(null) n)
66 	{ _godot_object.ptr = n; return null; }
67 	/// 
68 	pragma(inline, true) bool opEquals(typeof(null) n) const
69 	{ return _godot_object.ptr is n; }
70 	/// 
71 	size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; }
72 	mixin baseCasts;
73 	/// Construct a new instance of BakedLightmapData.
74 	/// Note: use `memnew!BakedLightmapData` instead.
75 	static BakedLightmapData _new()
76 	{
77 		static godot_class_constructor constructor;
78 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("BakedLightmapData");
79 		if(constructor is null) return typeof(this).init;
80 		return cast(BakedLightmapData)(constructor());
81 	}
82 	@disable new(size_t s);
83 	/**
84 	
85 	*/
86 	Array _getUserData() const
87 	{
88 		Array _GODOT_args = Array.make();
89 		String _GODOT_method_name = String("_get_user_data");
90 		return this.callv(_GODOT_method_name, _GODOT_args).as!(RefOrT!Array);
91 	}
92 	/**
93 	
94 	*/
95 	void _setUserData(in Array data)
96 	{
97 		Array _GODOT_args = Array.make();
98 		_GODOT_args.append(data);
99 		String _GODOT_method_name = String("_set_user_data");
100 		this.callv(_GODOT_method_name, _GODOT_args);
101 	}
102 	/**
103 	
104 	*/
105 	void addUser(NodePathArg0)(in NodePathArg0 path, Resource lightmap, in long lightmap_slice, in Rect2 lightmap_uv_rect, in long instance)
106 	{
107 		checkClassBinding!(typeof(this))();
108 		ptrcall!(void)(GDNativeClassBinding.addUser, _godot_object, path, lightmap, lightmap_slice, lightmap_uv_rect, instance);
109 	}
110 	/**
111 	
112 	*/
113 	void clearData()
114 	{
115 		checkClassBinding!(typeof(this))();
116 		ptrcall!(void)(GDNativeClassBinding.clearData, _godot_object);
117 	}
118 	/**
119 	
120 	*/
121 	void clearUsers()
122 	{
123 		checkClassBinding!(typeof(this))();
124 		ptrcall!(void)(GDNativeClassBinding.clearUsers, _godot_object);
125 	}
126 	/**
127 	
128 	*/
129 	AABB getBounds() const
130 	{
131 		checkClassBinding!(typeof(this))();
132 		return ptrcall!(AABB)(GDNativeClassBinding.getBounds, _godot_object);
133 	}
134 	/**
135 	
136 	*/
137 	Transform getCellSpaceTransform() const
138 	{
139 		checkClassBinding!(typeof(this))();
140 		return ptrcall!(Transform)(GDNativeClassBinding.getCellSpaceTransform, _godot_object);
141 	}
142 	/**
143 	
144 	*/
145 	long getCellSubdiv() const
146 	{
147 		checkClassBinding!(typeof(this))();
148 		return ptrcall!(long)(GDNativeClassBinding.getCellSubdiv, _godot_object);
149 	}
150 	/**
151 	
152 	*/
153 	double getEnergy() const
154 	{
155 		checkClassBinding!(typeof(this))();
156 		return ptrcall!(double)(GDNativeClassBinding.getEnergy, _godot_object);
157 	}
158 	/**
159 	
160 	*/
161 	PoolByteArray getOctree() const
162 	{
163 		checkClassBinding!(typeof(this))();
164 		return ptrcall!(PoolByteArray)(GDNativeClassBinding.getOctree, _godot_object);
165 	}
166 	/**
167 	
168 	*/
169 	long getUserCount() const
170 	{
171 		checkClassBinding!(typeof(this))();
172 		return ptrcall!(long)(GDNativeClassBinding.getUserCount, _godot_object);
173 	}
174 	/**
175 	
176 	*/
177 	Ref!Resource getUserLightmap(in long user_idx) const
178 	{
179 		checkClassBinding!(typeof(this))();
180 		return ptrcall!(Resource)(GDNativeClassBinding.getUserLightmap, _godot_object, user_idx);
181 	}
182 	/**
183 	
184 	*/
185 	NodePath getUserPath(in long user_idx) const
186 	{
187 		checkClassBinding!(typeof(this))();
188 		return ptrcall!(NodePath)(GDNativeClassBinding.getUserPath, _godot_object, user_idx);
189 	}
190 	/**
191 	
192 	*/
193 	bool isInterior() const
194 	{
195 		checkClassBinding!(typeof(this))();
196 		return ptrcall!(bool)(GDNativeClassBinding.isInterior, _godot_object);
197 	}
198 	/**
199 	
200 	*/
201 	void setBounds(in AABB bounds)
202 	{
203 		checkClassBinding!(typeof(this))();
204 		ptrcall!(void)(GDNativeClassBinding.setBounds, _godot_object, bounds);
205 	}
206 	/**
207 	
208 	*/
209 	void setCellSpaceTransform(in Transform xform)
210 	{
211 		checkClassBinding!(typeof(this))();
212 		ptrcall!(void)(GDNativeClassBinding.setCellSpaceTransform, _godot_object, xform);
213 	}
214 	/**
215 	
216 	*/
217 	void setCellSubdiv(in long cell_subdiv)
218 	{
219 		checkClassBinding!(typeof(this))();
220 		ptrcall!(void)(GDNativeClassBinding.setCellSubdiv, _godot_object, cell_subdiv);
221 	}
222 	/**
223 	
224 	*/
225 	void setEnergy(in double energy)
226 	{
227 		checkClassBinding!(typeof(this))();
228 		ptrcall!(void)(GDNativeClassBinding.setEnergy, _godot_object, energy);
229 	}
230 	/**
231 	
232 	*/
233 	void setInterior(in bool interior)
234 	{
235 		checkClassBinding!(typeof(this))();
236 		ptrcall!(void)(GDNativeClassBinding.setInterior, _godot_object, interior);
237 	}
238 	/**
239 	
240 	*/
241 	void setOctree(in PoolByteArray octree)
242 	{
243 		checkClassBinding!(typeof(this))();
244 		ptrcall!(void)(GDNativeClassBinding.setOctree, _godot_object, octree);
245 	}
246 	/**
247 	
248 	*/
249 	@property AABB bounds()
250 	{
251 		return getBounds();
252 	}
253 	/// ditto
254 	@property void bounds(AABB v)
255 	{
256 		setBounds(v);
257 	}
258 	/**
259 	
260 	*/
261 	@property Transform cellSpaceTransform()
262 	{
263 		return getCellSpaceTransform();
264 	}
265 	/// ditto
266 	@property void cellSpaceTransform(Transform v)
267 	{
268 		setCellSpaceTransform(v);
269 	}
270 	/**
271 	
272 	*/
273 	@property long cellSubdiv()
274 	{
275 		return getCellSubdiv();
276 	}
277 	/// ditto
278 	@property void cellSubdiv(long v)
279 	{
280 		setCellSubdiv(v);
281 	}
282 	/**
283 	Global energy multiplier for baked and dynamic capture objects.
284 	*/
285 	@property double energy()
286 	{
287 		return getEnergy();
288 	}
289 	/// ditto
290 	@property void energy(double v)
291 	{
292 		setEnergy(v);
293 	}
294 	/**
295 	Controls whether dynamic capture objects receive environment lighting or not.
296 	*/
297 	@property bool interior()
298 	{
299 		return isInterior();
300 	}
301 	/// ditto
302 	@property void interior(bool v)
303 	{
304 		setInterior(v);
305 	}
306 	/**
307 	
308 	*/
309 	@property PoolByteArray octree()
310 	{
311 		return getOctree();
312 	}
313 	/// ditto
314 	@property void octree(PoolByteArray v)
315 	{
316 		setOctree(v);
317 	}
318 	/**
319 	
320 	*/
321 	@property Array userData()
322 	{
323 		return _getUserData();
324 	}
325 	/// ditto
326 	@property void userData(Array v)
327 	{
328 		_setUserData(v);
329 	}
330 }