From 14ab21ae793678be94a587afd65155d6f0ba8b68 Mon Sep 17 00:00:00 2001 From: sdk-team Date: Thu, 4 Mar 2021 10:08:57 +0000 Subject: [PATCH] Release RecognizeHandGesture. --- CHANGELOG | 3 + facebody/2019-12-30/RecognizeHandGesture.xml | 1 + facebody/CMakeLists.txt | 4 + .../alibabacloud/facebody/FacebodyClient.h | 8 ++ .../model/RecognizeHandGestureRequest.h | 54 +++++++++++++ .../model/RecognizeHandGestureResult.h | 64 ++++++++++++++++ facebody/src/FacebodyClient.cc | 36 +++++++++ .../src/model/RecognizeHandGestureRequest.cc | 62 +++++++++++++++ .../src/model/RecognizeHandGestureResult.cc | 76 +++++++++++++++++++ facebody/version-2019-12-30.xml | 2 +- 10 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 facebody/2019-12-30/RecognizeHandGesture.xml create mode 100644 facebody/include/alibabacloud/facebody/model/RecognizeHandGestureRequest.h create mode 100644 facebody/include/alibabacloud/facebody/model/RecognizeHandGestureResult.h create mode 100644 facebody/src/model/RecognizeHandGestureRequest.cc create mode 100644 facebody/src/model/RecognizeHandGestureResult.cc 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 @@ - +