535 Eigen::Matrix4f pose = box->getPose();
536 Eigen::Vector3f dim = box->getDimensions();
538 std::vector<std::vector<Eigen::Vector3f>> sides;
541 sides[0].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
542 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
543 (dim.z() / 2) * pose.block<3, 1>(0, 2));
544 sides[0].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
545 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
546 (dim.z() / 2) * pose.block<3, 1>(0, 2));
547 sides[0].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
548 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
549 (dim.z() / 2) * pose.block<3, 1>(0, 2));
550 sides[0].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
551 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
552 (dim.z() / 2) * pose.block<3, 1>(0, 2));
554 sides[1].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
555 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
556 (dim.z() / 2) * pose.block<3, 1>(0, 2));
557 sides[1].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
558 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
559 (dim.z() / 2) * pose.block<3, 1>(0, 2));
560 sides[1].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
561 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
562 (dim.z() / 2) * pose.block<3, 1>(0, 2));
563 sides[1].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
564 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
565 (dim.z() / 2) * pose.block<3, 1>(0, 2));
567 sides[2].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
568 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
569 (dim.z() / 2) * pose.block<3, 1>(0, 2));
570 sides[2].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
571 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
572 (dim.z() / 2) * pose.block<3, 1>(0, 2));
573 sides[2].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
574 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
575 (dim.z() / 2) * pose.block<3, 1>(0, 2));
576 sides[2].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
577 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
578 (dim.z() / 2) * pose.block<3, 1>(0, 2));
580 sides[3].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
581 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
582 (dim.z() / 2) * pose.block<3, 1>(0, 2));
583 sides[3].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
584 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
585 (dim.z() / 2) * pose.block<3, 1>(0, 2));
586 sides[3].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
587 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
588 (dim.z() / 2) * pose.block<3, 1>(0, 2));
589 sides[3].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
590 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
591 (dim.z() / 2) * pose.block<3, 1>(0, 2));
593 sides[4].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
594 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
595 (dim.z() / 2) * pose.block<3, 1>(0, 2));
596 sides[4].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
597 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
598 (dim.z() / 2) * pose.block<3, 1>(0, 2));
599 sides[4].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
600 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
601 (dim.z() / 2) * pose.block<3, 1>(0, 2));
602 sides[4].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
603 (dim.y() / 2) * pose.block<3, 1>(0, 1) +
604 (dim.z() / 2) * pose.block<3, 1>(0, 2));
606 sides[5].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) +
607 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
608 (dim.z() / 2) * pose.block<3, 1>(0, 2));
609 sides[5].push_back(pose.block<3, 1>(0, 3) + (dim.x() / 2) * pose.block<3, 1>(0, 0) -
610 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
611 (dim.z() / 2) * pose.block<3, 1>(0, 2));
612 sides[5].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) -
613 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
614 (dim.z() / 2) * pose.block<3, 1>(0, 2));
615 sides[5].push_back(pose.block<3, 1>(0, 3) - (dim.x() / 2) * pose.block<3, 1>(0, 0) +
616 (dim.y() / 2) * pose.block<3, 1>(0, 1) -
617 (dim.z() / 2) * pose.block<3, 1>(0, 2));
619 for (
unsigned int i = 0; i < sides.size(); i++)
623 box->getId() +
"_side" + std::to_string(i) +
"_line_1",
630 box->getId() +
"_side" + std::to_string(i) +
"_line_2",
637 box->getId() +
"_side" + std::to_string(i) +
"_line_3",
644 box->getId() +
"_side" + std::to_string(i) +
"_line_4",