diff --git a/CHANGELOG b/CHANGELOG
index f2c73deee..86b430fce 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+2021-03-04 Version: patch
+- Release RecognizeHandGesture.
+
2021-03-04 Version: patch
- Update Ocr.
diff --git a/facebody/2019-12-30/RecognizeHandGesture.xml b/facebody/2019-12-30/RecognizeHandGesture.xml
new file mode 100644
index 000000000..dc6f98883
--- /dev/null
+++ b/facebody/2019-12-30/RecognizeHandGesture.xml
@@ -0,0 +1 @@
+
diff --git a/facebody/CMakeLists.txt b/facebody/CMakeLists.txt
index d0a4e75c5..0726d21ce 100644
--- a/facebody/CMakeLists.txt
+++ b/facebody/CMakeLists.txt
@@ -123,6 +123,8 @@ set(facebody_public_header_model
include/alibabacloud/facebody/model/RecognizeExpressionResult.h
include/alibabacloud/facebody/model/RecognizeFaceRequest.h
include/alibabacloud/facebody/model/RecognizeFaceResult.h
+ include/alibabacloud/facebody/model/RecognizeHandGestureRequest.h
+ include/alibabacloud/facebody/model/RecognizeHandGestureResult.h
include/alibabacloud/facebody/model/RecognizePublicFaceRequest.h
include/alibabacloud/facebody/model/RecognizePublicFaceResult.h
include/alibabacloud/facebody/model/SearchBodyTraceRequest.h
@@ -240,6 +242,8 @@ set(facebody_src
src/model/RecognizeExpressionResult.cc
src/model/RecognizeFaceRequest.cc
src/model/RecognizeFaceResult.cc
+ src/model/RecognizeHandGestureRequest.cc
+ src/model/RecognizeHandGestureResult.cc
src/model/RecognizePublicFaceRequest.cc
src/model/RecognizePublicFaceResult.cc
src/model/SearchBodyTraceRequest.cc
diff --git a/facebody/include/alibabacloud/facebody/FacebodyClient.h b/facebody/include/alibabacloud/facebody/FacebodyClient.h
index 529c5cdd8..9e70d96f0 100644
--- a/facebody/include/alibabacloud/facebody/FacebodyClient.h
+++ b/facebody/include/alibabacloud/facebody/FacebodyClient.h
@@ -124,6 +124,8 @@
#include "model/RecognizeExpressionResult.h"
#include "model/RecognizeFaceRequest.h"
#include "model/RecognizeFaceResult.h"
+#include "model/RecognizeHandGestureRequest.h"
+#include "model/RecognizeHandGestureResult.h"
#include "model/RecognizePublicFaceRequest.h"
#include "model/RecognizePublicFaceResult.h"
#include "model/SearchBodyTraceRequest.h"
@@ -298,6 +300,9 @@ namespace AlibabaCloud
typedef Outcome RecognizeFaceOutcome;
typedef std::future RecognizeFaceOutcomeCallable;
typedef std::function&)> RecognizeFaceAsyncHandler;
+ typedef Outcome RecognizeHandGestureOutcome;
+ typedef std::future RecognizeHandGestureOutcomeCallable;
+ typedef std::function&)> RecognizeHandGestureAsyncHandler;
typedef Outcome RecognizePublicFaceOutcome;
typedef std::future RecognizePublicFaceOutcomeCallable;
typedef std::function&)> RecognizePublicFaceAsyncHandler;
@@ -474,6 +479,9 @@ namespace AlibabaCloud
RecognizeFaceOutcome recognizeFace(const Model::RecognizeFaceRequest &request)const;
void recognizeFaceAsync(const Model::RecognizeFaceRequest& request, const RecognizeFaceAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
RecognizeFaceOutcomeCallable recognizeFaceCallable(const Model::RecognizeFaceRequest& request) const;
+ RecognizeHandGestureOutcome recognizeHandGesture(const Model::RecognizeHandGestureRequest &request)const;
+ void recognizeHandGestureAsync(const Model::RecognizeHandGestureRequest& request, const RecognizeHandGestureAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
+ RecognizeHandGestureOutcomeCallable recognizeHandGestureCallable(const Model::RecognizeHandGestureRequest& request) const;
RecognizePublicFaceOutcome recognizePublicFace(const Model::RecognizePublicFaceRequest &request)const;
void recognizePublicFaceAsync(const Model::RecognizePublicFaceRequest& request, const RecognizePublicFaceAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
RecognizePublicFaceOutcomeCallable recognizePublicFaceCallable(const Model::RecognizePublicFaceRequest& request) const;
diff --git a/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureRequest.h b/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureRequest.h
new file mode 100644
index 000000000..f8af5a0fa
--- /dev/null
+++ b/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureRequest.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTUREREQUEST_H_
+#define ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTUREREQUEST_H_
+
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Facebody
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_FACEBODY_EXPORT RecognizeHandGestureRequest : public RpcServiceRequest
+ {
+
+ public:
+ RecognizeHandGestureRequest();
+ ~RecognizeHandGestureRequest();
+
+ std::string getGestureType()const;
+ void setGestureType(const std::string& gestureType);
+ std::string getAppId()const;
+ void setAppId(const std::string& appId);
+ std::string getImageURL()const;
+ void setImageURL(const std::string& imageURL);
+
+ private:
+ std::string gestureType_;
+ std::string appId_;
+ std::string imageURL_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTUREREQUEST_H_
\ No newline at end of file
diff --git a/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureResult.h b/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureResult.h
new file mode 100644
index 000000000..92b731126
--- /dev/null
+++ b/facebody/include/alibabacloud/facebody/model/RecognizeHandGestureResult.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTURERESULT_H_
+#define ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTURERESULT_H_
+
+#include
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Facebody
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_FACEBODY_EXPORT RecognizeHandGestureResult : public ServiceResult
+ {
+ public:
+ struct Data
+ {
+ float score;
+ std::string type;
+ long x;
+ long y;
+ long height;
+ long width;
+ };
+
+
+ RecognizeHandGestureResult();
+ explicit RecognizeHandGestureResult(const std::string &payload);
+ ~RecognizeHandGestureResult();
+ std::string getMessage()const;
+ Data getData()const;
+ std::string getCode()const;
+
+ protected:
+ void parse(const std::string &payload);
+ private:
+ std::string message_;
+ Data data_;
+ std::string code_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_FACEBODY_MODEL_RECOGNIZEHANDGESTURERESULT_H_
\ No newline at end of file
diff --git a/facebody/src/FacebodyClient.cc b/facebody/src/FacebodyClient.cc
index d5472d215..a5e13f8cb 100644
--- a/facebody/src/FacebodyClient.cc
+++ b/facebody/src/FacebodyClient.cc
@@ -1887,6 +1887,42 @@ FacebodyClient::RecognizeFaceOutcomeCallable FacebodyClient::recognizeFaceCallab
return task->get_future();
}
+FacebodyClient::RecognizeHandGestureOutcome FacebodyClient::recognizeHandGesture(const RecognizeHandGestureRequest &request) const
+{
+ auto endpointOutcome = endpointProvider_->getEndpoint();
+ if (!endpointOutcome.isSuccess())
+ return RecognizeHandGestureOutcome(endpointOutcome.error());
+
+ auto outcome = makeRequest(endpointOutcome.result(), request);
+
+ if (outcome.isSuccess())
+ return RecognizeHandGestureOutcome(RecognizeHandGestureResult(outcome.result()));
+ else
+ return RecognizeHandGestureOutcome(outcome.error());
+}
+
+void FacebodyClient::recognizeHandGestureAsync(const RecognizeHandGestureRequest& request, const RecognizeHandGestureAsyncHandler& handler, const std::shared_ptr& context) const
+{
+ auto fn = [this, request, handler, context]()
+ {
+ handler(this, request, recognizeHandGesture(request), context);
+ };
+
+ asyncExecute(new Runnable(fn));
+}
+
+FacebodyClient::RecognizeHandGestureOutcomeCallable FacebodyClient::recognizeHandGestureCallable(const RecognizeHandGestureRequest &request) const
+{
+ auto task = std::make_shared>(
+ [this, request]()
+ {
+ return this->recognizeHandGesture(request);
+ });
+
+ asyncExecute(new Runnable([task]() { (*task)(); }));
+ return task->get_future();
+}
+
FacebodyClient::RecognizePublicFaceOutcome FacebodyClient::recognizePublicFace(const RecognizePublicFaceRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
diff --git a/facebody/src/model/RecognizeHandGestureRequest.cc b/facebody/src/model/RecognizeHandGestureRequest.cc
new file mode 100644
index 000000000..016814773
--- /dev/null
+++ b/facebody/src/model/RecognizeHandGestureRequest.cc
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+
+using AlibabaCloud::Facebody::Model::RecognizeHandGestureRequest;
+
+RecognizeHandGestureRequest::RecognizeHandGestureRequest() :
+ RpcServiceRequest("facebody", "2019-12-30", "RecognizeHandGesture")
+{
+ setMethod(HttpRequest::Method::Post);
+}
+
+RecognizeHandGestureRequest::~RecognizeHandGestureRequest()
+{}
+
+std::string RecognizeHandGestureRequest::getGestureType()const
+{
+ return gestureType_;
+}
+
+void RecognizeHandGestureRequest::setGestureType(const std::string& gestureType)
+{
+ gestureType_ = gestureType;
+ setBodyParameter("GestureType", gestureType);
+}
+
+std::string RecognizeHandGestureRequest::getAppId()const
+{
+ return appId_;
+}
+
+void RecognizeHandGestureRequest::setAppId(const std::string& appId)
+{
+ appId_ = appId;
+ setBodyParameter("AppId", appId);
+}
+
+std::string RecognizeHandGestureRequest::getImageURL()const
+{
+ return imageURL_;
+}
+
+void RecognizeHandGestureRequest::setImageURL(const std::string& imageURL)
+{
+ imageURL_ = imageURL;
+ setBodyParameter("ImageURL", imageURL);
+}
+
diff --git a/facebody/src/model/RecognizeHandGestureResult.cc b/facebody/src/model/RecognizeHandGestureResult.cc
new file mode 100644
index 000000000..7e7da225a
--- /dev/null
+++ b/facebody/src/model/RecognizeHandGestureResult.cc
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include
+
+using namespace AlibabaCloud::Facebody;
+using namespace AlibabaCloud::Facebody::Model;
+
+RecognizeHandGestureResult::RecognizeHandGestureResult() :
+ ServiceResult()
+{}
+
+RecognizeHandGestureResult::RecognizeHandGestureResult(const std::string &payload) :
+ ServiceResult()
+{
+ parse(payload);
+}
+
+RecognizeHandGestureResult::~RecognizeHandGestureResult()
+{}
+
+void RecognizeHandGestureResult::parse(const std::string &payload)
+{
+ Json::Reader reader;
+ Json::Value value;
+ reader.parse(payload, value);
+ setRequestId(value["RequestId"].asString());
+ auto dataNode = value["Data"];
+ if(!dataNode["Score"].isNull())
+ data_.score = std::stof(dataNode["Score"].asString());
+ if(!dataNode["Type"].isNull())
+ data_.type = dataNode["Type"].asString();
+ if(!dataNode["X"].isNull())
+ data_.x = std::stol(dataNode["X"].asString());
+ if(!dataNode["Y"].isNull())
+ data_.y = std::stol(dataNode["Y"].asString());
+ if(!dataNode["Height"].isNull())
+ data_.height = std::stol(dataNode["Height"].asString());
+ if(!dataNode["Width"].isNull())
+ data_.width = std::stol(dataNode["Width"].asString());
+ if(!value["Message"].isNull())
+ message_ = value["Message"].asString();
+ if(!value["Code"].isNull())
+ code_ = value["Code"].asString();
+
+}
+
+std::string RecognizeHandGestureResult::getMessage()const
+{
+ return message_;
+}
+
+RecognizeHandGestureResult::Data RecognizeHandGestureResult::getData()const
+{
+ return data_;
+}
+
+std::string RecognizeHandGestureResult::getCode()const
+{
+ return code_;
+}
+
diff --git a/facebody/version-2019-12-30.xml b/facebody/version-2019-12-30.xml
index 3b2a259d5..2c1bbdbfe 100644
--- a/facebody/version-2019-12-30.xml
+++ b/facebody/version-2019-12-30.xml
@@ -1 +1 @@
-
+