+
+ if(!ParseBvh(stream, frameCount, frameTime, rootJoint))
+ {
+ AnimationDefinition animationDefinition;
+ return animationDefinition;
+ }
+
+ return GenerateAnimation(animationName, rootJoint, frameCount, frameTime, useRootTranslationOnly, scale);
+}
+} // namespace
+
+AnimationDefinition LoadBvh(const std::string& path, const std::string& animationName, bool useRootTranslationOnly, const Vector3& scale)
+{
+ Dali::FileStream fileStream(path);
+ std::iostream& stream = fileStream.GetStream();
+
+ if(stream.fail())
+ {
+ DALI_LOG_ERROR("Fail to load bvh file : %s\n", path.c_str());
+ AnimationDefinition animationDefinition;
+ return animationDefinition;
+ }
+
+ return LoadBvhInternal(stream, animationName, useRootTranslationOnly, scale);
+}
+
+AnimationDefinition LoadBvhFromBuffer(const uint8_t* rawBuffer, int rawBufferLength, const std::string& animationName, bool useRootTranslationOnly, const Vector3& scale)
+{
+ if(rawBuffer == nullptr || rawBufferLength == 0)
+ {
+ DALI_LOG_ERROR("Fail to load bvh buffer : buffer is empty!\n");
+ AnimationDefinition animationDefinition;
+ return animationDefinition;
+ }
+
+ Dali::FileStream fileStream(const_cast<uint8_t*>(rawBuffer), static_cast<size_t>(static_cast<uint32_t>(rawBufferLength)));
+ std::iostream& stream = fileStream.GetStream();
+
+ if(stream.fail())