From: Adam Bialogonski Date: Tue, 14 Nov 2023 11:54:04 +0000 (+0000) Subject: Added function to set a collider mesh on the ModelNode and signal to Model X-Git-Tag: dali_2.2.53~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-csharp-binder.git;a=commitdiff_plain;h=335022d0aa9c630f3ca6f3618247eb2b2047992a Added function to set a collider mesh on the ModelNode and signal to Model Change-Id: I0a1cc6633002779a26e7f0fc60f0a67412feb2c4 --- diff --git a/dali-csharp-binder/dali-scene3d/model-node-wrap.cpp b/dali-csharp-binder/dali-scene3d/model-node-wrap.cpp index 9981584..c86ab99 100644 --- a/dali-csharp-binder/dali-scene3d/model-node-wrap.cpp +++ b/dali-csharp-binder/dali-scene3d/model-node-wrap.cpp @@ -17,6 +17,8 @@ // EXTERNAL INCLUDES #include +#include +#include // INTERNAL INCLUDES #include @@ -293,6 +295,18 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_Node_GetChildModelNodeAt(void* cs return new Dali::Scene3D::ModelNode((const Dali::Scene3D::ModelNode&)result); } +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ModelNode_SetColliderMesh(void *modelNodePtr, void* vertexPtr, void* normalPtr, unsigned long vertexCount, void* indexPtr, unsigned long indexCount) { + Dali::Scene3D::ModelNode *modelNode = (Dali::Scene3D::ModelNode *) modelNodePtr; + auto vertices = reinterpret_cast(vertexPtr); + auto normals = reinterpret_cast(normalPtr); + auto indices = reinterpret_cast(indexPtr); + + try { + auto colliderMesh = Dali::Scene3D::Loader::NavigationMeshFactory::CreateFromVertexFaceList(vertices, normals, vertexCount, indices, indexCount); + modelNode->SetColliderMesh(std::move(colliderMesh)); + } CALL_CATCH_EXCEPTION(); +} + #ifdef __cplusplus } #endif diff --git a/dali-csharp-binder/dali-scene3d/model-wrap.cpp b/dali-csharp-binder/dali-scene3d/model-wrap.cpp index f4d282c..2f8a449 100644 --- a/dali-csharp-binder/dali-scene3d/model-wrap.cpp +++ b/dali-csharp-binder/dali-scene3d/model-wrap.cpp @@ -743,6 +743,8 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_LoadFacialAnimation_2(void* csMod return new Dali::Animation((const Dali::Animation&)result); } +GENERATE_SIGNAL(Dali::Scene3D::Model*, bool (*)(Dali::Scene3D::Model, Dali::Scene3D::ModelNode), Dali_Model, MeshHitSignal); + #ifdef __cplusplus } #endif