Use DepthIndex for 3D rendering order
[platform/core/uifw/dali-csharp-binder.git] / dali-csharp-binder / dali-scene3d / material-wrap.cpp
1 /*
2  * Copyright (c) 2023 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // EXTERNAL INCLUDES
19 #include <dali-scene3d/public-api/model-components/material.h>
20
21 // INTERNAL INCLUDES
22 #include <dali-csharp-binder/common/common.h>
23
24 extern SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback;
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_New_SWIG_0()
31 {
32   Dali::Scene3D::Material result;
33
34   {
35     try
36     {
37       result = Dali::Scene3D::Material::New();
38     }
39     CALL_CATCH_EXCEPTION(0);
40   }
41
42   return new Dali::Scene3D::Material((const Dali::Scene3D::Material&)result);
43 }
44
45 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_new_Material_SWIG_0()
46 {
47   Dali::Scene3D::Material* result = 0;
48
49   {
50     try
51     {
52       result = (Dali::Scene3D::Material*)new Dali::Scene3D::Material();
53     }
54     CALL_CATCH_EXCEPTION(0);
55   }
56
57   return (void*)result;
58 }
59
60 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_new_Material_SWIG_1(void* csModel)
61 {
62   Dali::Scene3D::Material* model  = (Dali::Scene3D::Material*)csModel;
63   Dali::Scene3D::Material* result = 0;
64
65   if(!model)
66   {
67     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Scene3D::Material const & type is null", 0);
68     return 0;
69   }
70   {
71     try
72     {
73       result = (Dali::Scene3D::Material*)new Dali::Scene3D::Material((Dali::Scene3D::Material const&)*model);
74     }
75     CALL_CATCH_EXCEPTION(0);
76   }
77
78   return (void*)result;
79 }
80
81 SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_Material(void* csModel)
82 {
83   Dali::Scene3D::Material* model = (Dali::Scene3D::Material*)csModel;
84   {
85     try
86     {
87       delete model;
88     }
89     CALL_CATCH_EXCEPTION();
90   }
91 }
92
93 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_Assign(void* csDestination, void* csSource)
94 {
95   Dali::Scene3D::Material* destination = (Dali::Scene3D::Material*)csDestination;
96   Dali::Scene3D::Material* source      = (Dali::Scene3D::Material*)csSource;
97   Dali::Scene3D::Material* result      = 0;
98
99   if(!source)
100   {
101     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Scene3D::Material const & type is null", 0);
102     return 0;
103   }
104   {
105     try
106     {
107       result = (Dali::Scene3D::Material*)&(destination)->operator=((Dali::Scene3D::Material const&)*source);
108     }
109     CALL_CATCH_EXCEPTION(0);
110   }
111
112   return (void*)result;
113 }
114
115 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_DownCast(void* csHandle)
116 {
117   Dali::BaseHandle*       handle = (Dali::BaseHandle*)csHandle;
118   Dali::Scene3D::Material result;
119
120   if(!handle)
121   {
122     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
123     return 0;
124   }
125   {
126     try
127     {
128       result = Dali::Scene3D::Material::DownCast(*handle);
129     }
130     CALL_CATCH_EXCEPTION(0);
131   }
132
133   return new Dali::Scene3D::Material((const Dali::Scene3D::Material&)result);
134 }
135
136 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_NAME_get()
137 {
138   return (int)Dali::Scene3D::Material::Property::NAME;
139 }
140
141 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_BASE_COLOR_URL_get()
142 {
143   return (int)Dali::Scene3D::Material::Property::BASE_COLOR_URL;
144 }
145
146 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_BASE_COLOR_FACTOR_get()
147 {
148   return (int)Dali::Scene3D::Material::Property::BASE_COLOR_FACTOR;
149 }
150
151 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_METALLIC_ROUGHNESS_URL_get()
152 {
153   return (int)Dali::Scene3D::Material::Property::METALLIC_ROUGHNESS_URL;
154 }
155
156 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_METALLIC_FACTOR_get()
157 {
158   return (int)Dali::Scene3D::Material::Property::METALLIC_FACTOR;
159 }
160
161 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_ROUGHNESS_FACTOR_get()
162 {
163   return (int)Dali::Scene3D::Material::Property::ROUGHNESS_FACTOR;
164 }
165
166 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_NORMAL_URL_get()
167 {
168   return (int)Dali::Scene3D::Material::Property::NORMAL_URL;
169 }
170
171 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_NORMAL_SCALE_get()
172 {
173   return (int)Dali::Scene3D::Material::Property::NORMAL_SCALE;
174 }
175
176 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_OCCLUSION_URL_get()
177 {
178   return (int)Dali::Scene3D::Material::Property::OCCLUSION_URL;
179 }
180
181 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_OCCLUSION_STRENGTH_get()
182 {
183   return (int)Dali::Scene3D::Material::Property::OCCLUSION_STRENGTH;
184 }
185
186 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_EMISSIVE_URL_get()
187 {
188   return (int)Dali::Scene3D::Material::Property::EMISSIVE_URL;
189 }
190
191 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_EMISSIVE_FACTOR_get()
192 {
193   return (int)Dali::Scene3D::Material::Property::EMISSIVE_FACTOR;
194 }
195
196 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_ALPHA_MODE_get()
197 {
198   return (int)Dali::Scene3D::Material::Property::ALPHA_MODE;
199 }
200
201 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_ALPHA_CUTOFF_get()
202 {
203   return (int)Dali::Scene3D::Material::Property::ALPHA_CUTOFF;
204 }
205
206 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_DOUBLE_SIDED_get()
207 {
208   return (int)Dali::Scene3D::Material::Property::DOUBLE_SIDED;
209 }
210
211 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_IOR_get()
212 {
213   return (int)Dali::Scene3D::Material::Property::IOR;
214 }
215
216 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_SPECULAR_URL_get()
217 {
218   return (int)Dali::Scene3D::Material::Property::SPECULAR_URL;
219 }
220
221 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_SPECULAR_FACTOR_get()
222 {
223   return (int)Dali::Scene3D::Material::Property::SPECULAR_FACTOR;
224 }
225
226 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_SPECULAR_COLOR_URL_get()
227 {
228   return (int)Dali::Scene3D::Material::Property::SPECULAR_COLOR_URL;
229 }
230
231 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_SPECULAR_COLOR_FACTOR_get()
232 {
233   return (int)Dali::Scene3D::Material::Property::SPECULAR_COLOR_FACTOR;
234 }
235
236 SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Material_property_DEPTH_INDEX_get()
237 {
238   return (int)Dali::Scene3D::Material::Property::DEPTH_INDEX;
239 }
240
241 SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Material_SetProperty(void* csMaterial, int index, void* csPropertyValue)
242 {
243   Dali::Scene3D::Material* material      = (Dali::Scene3D::Material*)csMaterial;
244   Dali::Property::Value*   propertyValue = (Dali::Property::Value*)csPropertyValue;
245
246   if(!material)
247   {
248     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
249     return;
250   }
251   {
252     try
253     {
254       material->SetProperty((Dali::Property::Index)index, *propertyValue);
255     }
256     CALL_CATCH_EXCEPTION();
257   }
258 }
259
260 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_GetProperty(void* csMaterial, int index)
261 {
262   Dali::Scene3D::Material* material = (Dali::Scene3D::Material*)csMaterial;
263   Dali::Property::Value    result;
264
265   if(!material)
266   {
267     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
268     return nullptr;
269   }
270   {
271     try
272     {
273       result = material->GetProperty((Dali::Property::Index)index);
274     }
275     CALL_CATCH_EXCEPTION(nullptr);
276   }
277   return new Dali::Property::Value((const Dali::Property::Value&)result);
278 }
279
280 SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Material_SetTexture(void* csMaterial, unsigned int index, void* csTexture)
281 {
282   Dali::Scene3D::Material* material = (Dali::Scene3D::Material*)csMaterial;
283   Dali::Texture*           texture  = (Dali::Texture*)csTexture;
284
285   if(!material)
286   {
287     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
288     return;
289   }
290
291   if(!texture)
292   {
293     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Texture", 0);
294     return;
295   }
296
297   try
298   {
299     material->SetTexture((Dali::Scene3D::Material::TextureType)index, *texture);
300   }
301   CALL_CATCH_EXCEPTION();
302 }
303
304 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_GetTexture(void* csMaterial, unsigned int index)
305 {
306   Dali::Scene3D::Material* material = (Dali::Scene3D::Material*)csMaterial;
307   Dali::Texture            result;
308
309   if(!material)
310   {
311     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
312     return nullptr;
313   }
314
315   try
316   {
317     result = material->GetTexture((Dali::Scene3D::Material::TextureType)index);
318   }
319   CALL_CATCH_EXCEPTION(nullptr);
320
321   return new Dali::Texture((const Dali::Texture&)result);
322 }
323
324 SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Material_SetSampler(void* csMaterial, unsigned int index, void* csSampler)
325 {
326   Dali::Scene3D::Material* material = (Dali::Scene3D::Material*)csMaterial;
327   Dali::Sampler*           sampler  = (Dali::Sampler*)csSampler;
328
329   if(!material)
330   {
331     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
332     return;
333   }
334
335   try
336   {
337     material->SetSampler((Dali::Scene3D::Material::TextureType)index, *sampler);
338   }
339   CALL_CATCH_EXCEPTION();
340 }
341
342 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Material_GetSampler(void* csMaterial, unsigned int index)
343 {
344   Dali::Scene3D::Material* material = (Dali::Scene3D::Material*)csMaterial;
345   Dali::Sampler            result;
346
347   if(!material)
348   {
349     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Material", 0);
350     return nullptr;
351   }
352
353   try
354   {
355     result = material->GetSampler((Dali::Scene3D::Material::TextureType)index);
356   }
357   CALL_CATCH_EXCEPTION(nullptr);
358   return new Dali::Sampler((const Dali::Sampler&)result);
359 }
360
361 #ifdef __cplusplus
362 }
363 #endif