ProvidedObjectPose.cpp
Go to the documentation of this file.
2
5
9
10#include "ice_conversions.h"
11
12namespace armarx::objpose
13{
17
18 ProvidedObjectPose::ProvidedObjectPose(const data::ProvidedObjectPose& ice)
19 {
20 fromIce(ice);
21 }
22
23 void
24 ProvidedObjectPose::fromIce(const data::ProvidedObjectPose& ice)
25 {
26 providerName = ice.providerName;
27 objectType = ice.objectType;
28 isStatic = ice.isStatic;
29 armarx::fromIce(ice.objectID, objectID);
30
31 armarx::fromIce(ice.objectPose, objectPose);
32 objectPoseFrame = ice.objectPoseFrame;
33 objpose::fromIce(ice.objectPoseGaussian, objectPoseGaussian);
34
35 objectJointValues = ice.objectJointValues;
36
37 confidence = ice.confidence;
39
40 objpose::fromIce(ice.localOOBB, localOOBB);
41 }
42
43 data::ProvidedObjectPose
45 {
46 data::ProvidedObjectPose ice;
47 toIce(ice);
48 return ice;
49 }
50
51 void
52 ProvidedObjectPose::toIce(data::ProvidedObjectPose& ice) const
53 {
54 ice.providerName = providerName;
55 ice.objectType = objectType;
56 ice.isStatic = isStatic;
57 armarx::toIce(ice.objectID, objectID);
58
59 armarx::toIce(ice.objectPose, objectPose);
60 ice.objectPoseFrame = objectPoseFrame;
61 objpose::toIce(ice.objectPoseGaussian, objectPoseGaussian);
62
63 ice.objectJointValues = objectJointValues;
64
65 ice.confidence = confidence;
67
68 objpose::toIce(ice.localOOBB, localOOBB);
69 }
70} // namespace armarx::objpose
71
72namespace armarx
73{
74
75 void
76 objpose::fromIce(const data::ProvidedObjectPose& ice, ProvidedObjectPose& pose)
77 {
78 pose.fromIce(ice);
79 }
80
82 objpose::fromIce(const data::ProvidedObjectPose& ice)
83 {
84 return ProvidedObjectPose(ice);
85 }
86
87 void
88 objpose::fromIce(const data::ProvidedObjectPoseSeq& ice, ProvidedObjectPoseSeq& poses)
89 {
90 poses.clear();
91 poses.reserve(ice.size());
92 for (const auto& i : ice)
93 {
94 poses.emplace_back(i);
95 }
96 }
97
99 objpose::fromIce(const data::ProvidedObjectPoseSeq& ice)
100 {
102 fromIce(ice, poses);
103 return poses;
104 }
105
106 void
107 objpose::toIce(data::ProvidedObjectPose& ice, const ProvidedObjectPose& pose)
108 {
109 pose.toIce(ice);
110 }
111
112 objpose::data::ProvidedObjectPose
114 {
115 return pose.toIce();
116 }
117
118 void
119 objpose::toIce(data::ProvidedObjectPoseSeq& ice, const ProvidedObjectPoseSeq& poses)
120 {
121 ice.clear();
122 ice.reserve(poses.size());
123 for (const auto& p : poses)
124 {
125 ice.emplace_back(p.toIce());
126 }
127 }
128
129 objpose::data::ProvidedObjectPoseSeq
131 {
132 data::ProvidedObjectPoseSeq ice;
133 toIce(ice, poses);
134 return ice;
135 }
136
137} // namespace armarx
An object pose provided by an ObjectPoseProvider.
float confidence
Confidence in [0, 1] (1 = full, 0 = none).
armarx::ObjectID objectID
The object ID, i.e. dataset, class name and instance name.
std::string providerName
Name of the providing component.
bool isStatic
Whether object is static. Static objects don't decay.
DateTime timestamp
Source timestamp.
ObjectType objectType
Known or unknown object.
std::map< std::string, float > objectJointValues
The object's joint values if it is articulated.
void fromIce(const data::ProvidedObjectPose &ice)
std::optional< simox::OrientedBoxf > localOOBB
Object bounding box in object's local coordinate frame.
data::ProvidedObjectPose toIce() const
std::optional< PoseManifoldGaussian > objectPoseGaussian
void toIce(dto::ClockType::ClockTypeEnum &dto, const ClockType &bo)
void fromIce(const dto::ClockType::ClockTypeEnum &dto, ClockType &bo)
void fromIce(const Box &box, simox::OrientedBox< float > &oobb)
std::vector< ProvidedObjectPose > ProvidedObjectPoseSeq
objpose::AABB toIce(const simox::AxisAlignedBoundingBox &aabb)
This file offers overloads of toIce() and fromIce() functions for STL container types.
void fromIce(const std::map< IceKeyT, IceValueT > &iceMap, boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
void toIce(std::map< IceKeyT, IceValueT > &iceMap, const boost::container::flat_map< CppKeyT, CppValueT > &cppMap)