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 
10 namespace 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 
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
armarx::objpose::RequestedObjects::Update::added
std::vector< armarx::ObjectID > added
Definition: RequestedObjects.h:27
armarx::objpose::RequestedObjects::requestObjects
void requestObjects(const std::vector< armarx::data::ObjectID > &objectIDs, long relativeTimeOutMS)
Definition: RequestedObjects.cpp:16
armarx::objpose::RequestedObjects::Request::infinite
bool infinite
Definition: RequestedObjects.h:22
armarx::objpose::RequestedObjects::Update::removed
std::vector< armarx::ObjectID > removed
Definition: RequestedObjects.h:28
armarx::objpose::RequestedObjects::infiniteRequests
std::vector< armarx::ObjectID > infiniteRequests
Definition: RequestedObjects.h:50
armarx::objpose::RequestedObjects::currentRequests
std::map< IceUtil::Time, std::vector< Request > > currentRequests
Map from (absolute timeout) to (request)
Definition: RequestedObjects.h:49
armarx::objpose::RequestedObjects::Request::objectIDs
std::vector< armarx::ObjectID > objectIDs
Definition: RequestedObjects.h:21
armarx::objpose::RequestedObjects::updateRequestedObjects
Update updateRequestedObjects()
Definition: RequestedObjects.cpp:56
armarx::objpose::RequestedObjects::RequestedObjects
RequestedObjects()
Definition: RequestedObjects.cpp:11
armarx::objpose::RequestedObjects::Update::current
std::vector< armarx::ObjectID > current
Definition: RequestedObjects.h:29
armarx::objpose
Definition: objpose.h:6
ObjectID.h
armarx::objpose::RequestedObjects::Request
Definition: RequestedObjects.h:19
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::objpose::RequestedObjects::Update
Definition: RequestedObjects.h:25
armarx::objpose::RequestedObjects
Handles requests for object pose estimation from the ObjectPoseProviderInterface.
Definition: RequestedObjects.h:15