RequestedObjects.h
Go to the documentation of this file.
1#pragma once
2
3#include <deque>
4#include <set>
5#include <vector>
6
7#include <RobotAPI/interface/objectpose/object_pose_types.h>
9
10namespace armarx::objpose
11{
12 /**
13 * @brief Handles requests for object pose estimation from the ObjectPoseProviderInterface.
14 */
16 {
17
18 public:
19 struct Request
20 {
21 std::vector<armarx::ObjectID> objectIDs;
22 bool infinite = false;
23 };
24
25 struct Update
26 {
27 std::vector<armarx::ObjectID> added;
28 std::vector<armarx::ObjectID> removed;
29 std::vector<armarx::ObjectID> current;
30 };
31
32
33 public:
35
36 void requestObjects(const std::vector<armarx::data::ObjectID>& objectIDs,
37 long relativeTimeOutMS);
38 void requestObjects(const std::vector<armarx::ObjectID>& objectIDs, long relativeTimeOutMS);
39 void requestObjects(const std::vector<armarx::ObjectID>& objectIDs,
40 IceUtil::Time relativeTimeout);
41
42
44 Update updateRequestedObjects(IceUtil::Time now);
45
46
47 public:
48 /// Map from (absolute timeout) to (request)
49 std::map<IceUtil::Time, std::vector<Request>> currentRequests;
50 std::vector<armarx::ObjectID> infiniteRequests;
51
52
53 private:
54 std::vector<armarx::ObjectID> lastCurrent;
55 };
56} // namespace armarx::objpose
std::vector< armarx::ObjectID > infiniteRequests
std::map< IceUtil::Time, std::vector< Request > > currentRequests
Map from (absolute timeout) to (request)
void requestObjects(const std::vector< armarx::data::ObjectID > &objectIDs, long relativeTimeOutMS)
std::vector< armarx::ObjectID > objectIDs
std::vector< armarx::ObjectID > current
std::vector< armarx::ObjectID > removed
std::vector< armarx::ObjectID > added