| 584 | } |
| 585 | |
| 586 | void |
| 587 | Track3D::toMsg(opt_msgs::Track3D& track_msg, bool vertical) |
| 588 | { |
| 589 | |
| 590 | double _x, _y, _z; |
| 591 | filter_->getState(_x, _y, _z); |
| 592 | |
| 593 | track_msg.id = id_; |
| 594 | track_msg.x = _x; |
| 595 | track_msg.y = _y; |
| 596 | track_msg.z = _z; |
| 597 | track_msg.height = height_; |
| 598 | track_msg.distance = distance_; |
| 599 | track_msg.age = age_; |
| 600 | track_msg.confidence = - data_association_score_; // minus for transforming distance into a sort of confidence |
| 601 | track_msg.visibility = visibility_; |
| 602 | |
| 603 | Eigen::Vector3d top(_x, _y, _z + (height_/2)); |
| 604 | Eigen::Vector3d bottom(_x, _y, _z - (height_/2)); |
| 605 | top = detection_source_->transformToCam(top); |
| 606 | bottom = detection_source_->transformToCam(bottom); |
| 607 | if (not vertical) |
| 608 | { |
| 609 | track_msg.box_2D.height = int(std::abs((top - bottom)(1))); |
| 610 | track_msg.box_2D.width = track_msg.box_2D.height / 2; |
| 611 | track_msg.box_2D.x = int(top(0)) - track_msg.box_2D.height / 4; |
| 612 | track_msg.box_2D.y = int(top(1)); |
| 613 | } |
| 614 | else |
| 615 | { |
| 616 | track_msg.box_2D.width = int(std::abs((top - bottom)(0))); |
| 617 | track_msg.box_2D.height = track_msg.box_2D.width / 2; |
| 618 | track_msg.box_2D.x = int(top(0)) - track_msg.box_2D.width; |
| 619 | track_msg.box_2D.y = int(top(1)) - track_msg.box_2D.width / 4; |
| 620 | } |
| 621 | } |
| 622 | |
| 623 | open_ptrack::detection::DetectionSource* |
| 624 | Track3D::getDetectionSource() |
nothing calls this directly
no test coverage detected