Merge "Support to build ModelNode Tree in csharp" into devel/master
authorEunki Hong <eunkiki.hong@samsung.com>
Wed, 8 Nov 2023 05:01:48 +0000 (05:01 +0000)
committerGerrit Code Review <gerrit@review>
Wed, 8 Nov 2023 05:01:48 +0000 (05:01 +0000)
dali-csharp-binder/dali-scene3d/model-node-wrap.cpp
dali-csharp-binder/dali-scene3d/model-primitive-wrap.cpp

index 8522918..9981584 100644 (file)
@@ -254,6 +254,45 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_Node_FindChildModelNodeByName(voi
   return new Dali::Scene3D::ModelNode((const Dali::Scene3D::ModelNode&)result);
 }
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_Model_Node_GetChildModelNodeCount(void* csModelNode)
+{
+  Dali::Scene3D::ModelNode* modelNode = (Dali::Scene3D::ModelNode*)csModelNode;
+
+  if(!modelNode)
+  {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::ModelNode", 0);
+    return 0;
+  }
+  {
+    try
+    {
+      return modelNode->GetChildCount();
+    }
+    CALL_CATCH_EXCEPTION(0);
+  }
+}
+
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_Node_GetChildModelNodeAt(void* csModelNode, uint32_t index)
+{
+  Dali::Scene3D::ModelNode* modelNode = (Dali::Scene3D::ModelNode*)csModelNode;
+  Dali::Scene3D::ModelNode result;
+
+  if(!modelNode)
+  {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::ModelNode", 0);
+    return nullptr;
+  }
+  {
+    try
+    {
+      Dali::Actor actor = modelNode->GetChildAt(index);
+      result = Dali::Scene3D::ModelNode::DownCast(actor);
+    }
+    CALL_CATCH_EXCEPTION(nullptr);
+  }
+  return new Dali::Scene3D::ModelNode((const Dali::Scene3D::ModelNode&)result);
+}
+
 #ifdef __cplusplus
 }
 #endif
index d94b492..34518cd 100644 (file)
@@ -188,6 +188,26 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Model_Primitive_SetMaterial(void* csMode
    CALL_CATCH_EXCEPTION();
 }
 
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_Primitive_GetMaterial(void* csModelPrimitive)
+{
+  Dali::Scene3D::ModelPrimitive* modelPrimitive = (Dali::Scene3D::ModelPrimitive*)csModelPrimitive;
+  Dali::Scene3D::Material result;
+
+  if(!modelPrimitive)
+  {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::ModelPrimitive", 0);
+    return nullptr;
+  }
+  {
+    try
+    {
+      result = modelPrimitive->GetMaterial();
+    }
+    CALL_CATCH_EXCEPTION(nullptr);
+  }
+  return new Dali::Scene3D::Material((const Dali::Scene3D::Material&)result);
+}
+
 
 #ifdef __cplusplus
 }