| 191 | } |
| 192 | |
| 193 | void |
| 194 | SkeletonTrack::toMsg(opt_msgs::SkeletonTrack& track_msg, bool vertical) |
| 195 | { |
| 196 | if(SkeletonTrack::count == 0 && debug_count_ <= 0) |
| 197 | ROS_WARN_STREAM("SkeletonTrack TODO: Define the skel_track_msg"); |
| 198 | double _x,_y; |
| 199 | filter_->getState(_x,_y); |
| 200 | |
| 201 | track_msg.id = id_; |
| 202 | track_msg.x = _x; |
| 203 | track_msg.y = _y; |
| 204 | track_msg.height = z_; |
| 205 | track_msg.distance = distance_; |
| 206 | track_msg.age = age_; |
| 207 | track_msg.color.a = 1.0; |
| 208 | track_msg.color.r = color_(2); |
| 209 | track_msg.color.g = color_(1); |
| 210 | track_msg.color.b = color_(0); |
| 211 | |
| 212 | track_msg.confidence = - data_association_score_; // minus for transforming distance into a sort of confidence |
| 213 | track_msg.visibility = visibility_; |
| 214 | |
| 215 | Eigen::Vector3d top(_x, _y, z_ + (height_/2)); |
| 216 | Eigen::Vector3d bottom(_x, _y, z_ - (height_/2)); |
| 217 | top = detection_source_->transformToCam(top); |
| 218 | bottom = detection_source_->transformToCam(bottom); |
| 219 | if (not vertical) |
| 220 | { |
| 221 | track_msg.box_2D.height = int(std::abs((top - bottom)(1))); |
| 222 | track_msg.box_2D.width = track_msg.box_2D.height / 2; |
| 223 | track_msg.box_2D.x = int(top(0)) - track_msg.box_2D.height / 4; |
| 224 | track_msg.box_2D.y = int(top(1)); |
| 225 | } |
| 226 | else |
| 227 | { |
| 228 | track_msg.box_2D.width = int(std::abs((top - bottom)(0))); |
| 229 | track_msg.box_2D.height = track_msg.box_2D.width / 2; |
| 230 | track_msg.box_2D.x = int(top(0)) - track_msg.box_2D.width; |
| 231 | track_msg.box_2D.y = int(top(1)) - track_msg.box_2D.width / 4; |
| 232 | } |
| 233 | track_msg.joints.resize(joint_tracks_.size()); |
| 234 | // SkeletonTrack::bodyPoseMsgToTrackerMsg(track_msg); |
| 235 | for(size_t i = 0; i < SkeletonJoints::SIZE; ++i) |
| 236 | { |
| 237 | Track3D* t = joint_tracks_[i]; |
| 238 | double jx, jy, jz; |
| 239 | t -> getState(jx, jy, jz); |
| 240 | opt_msgs::Track3D m; |
| 241 | m.confidence = 1.0; |
| 242 | m.x = jx; |
| 243 | m.y = jy; |
| 244 | m.z = jz; |
| 245 | m.id = i; |
| 246 | track_msg.joints[i] = m; |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | //void |
nothing calls this directly
no test coverage detected