/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// EXTERNAL INCLUDES
#include <dali-scene3d/public-api/controls/model/model.h>
#include <dali-scene3d/public-api/loader/bvh-loader.h>
+#include <dali-scene3d/public-api/loader/facial-animation-loader.h>
// INTERNAL INCLUDES
#include "common.h"
SWIGEXPORT bool SWIGSTDCALL CSharp_Dali_Model_ApplyCamera(void* csModel, unsigned int index, void* csCameraActor)
{
- Dali::Scene3D::Model* model = (Dali::Scene3D::Model*)csModel;
+ Dali::Scene3D::Model* model = (Dali::Scene3D::Model*)csModel;
Dali::CameraActor* cameraActor = (Dali::CameraActor*)csCameraActor;
bool result;
// csScale is option.
if(csScale != nullptr)
{
- scale = Dali::Vector3(*static_cast<const Dali::Vector3 *>(csScale));
+ scale = Dali::Vector3(*static_cast<const Dali::Vector3*>(csScale));
+ }
+ std::string filename(csFileName);
+ {
+ try
+ {
+ Dali::Scene3D::Loader::AnimationDefinition animationDefinition = Dali::Scene3D::Loader::LoadBvh(filename, "LoadedBvhAnimation", scale);
+ Dali::Scene3D::Loader::AnimatedProperty::GetActor getActor = [&model](const Dali::Scene3D::Loader::AnimatedProperty& property) -> Dali::Actor {
+ return model->FindChildByName(property.mNodeName);
+ };
+ result = animationDefinition.ReAnimate(getActor);
+ }
+ CALL_CATCH_EXCEPTION(0);
}
+
+ return new Dali::Animation((const Dali::Animation&)result);
+}
+
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Model_LoadFacialAnimation_1(void* csModel, char* csFileName)
+{
+ Dali::Scene3D::Model* model = (Dali::Scene3D::Model*)csModel;
+ Dali::Animation result;
+
+ if(!model)
+ {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Scene3D::Model", 0);
+ return 0;
+ }
+ if(!csFileName)
+ {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string for filename", 0);
+ return 0;
+ }
+
std::string filename(csFileName);
{
try
{
- Dali::Scene3D::Loader::AnimationDefinition animationDefinition = Dali::Scene3D::Loader::LoadBvh(filename, "LoadedBvhAnimation", scale);
- Dali::Scene3D::Loader::AnimatedProperty::GetActor getActor = [&model](const Dali::Scene3D::Loader::AnimatedProperty& property)->Dali::Actor{
+ Dali::Scene3D::Loader::AnimationDefinition animationDefinition = Dali::Scene3D::Loader::LoadFacialAnimation(filename);
+ Dali::Scene3D::Loader::AnimatedProperty::GetActor getActor = [&model](const Dali::Scene3D::Loader::AnimatedProperty& property) -> Dali::Actor {
return model->FindChildByName(property.mNodeName);
};
result = animationDefinition.ReAnimate(getActor);