ArVizDrawer.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @author Fabian Reister ( fabian dot reister at kit dot edu )
17  * @date 2021
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
24 #include <vector>
25 #include <set>
26 
27 #include <VirtualRobot/BoundingBox.h>
28 
30 #include <RobotAPI/interface/units/LaserScannerUnit.h>
31 
34 
36 {
37  class ArVizDrawer : virtual public armarx::viz::ScopedClient
38  {
39  public:
40  using ScopedClient::ScopedClient;
41 
42  void drawBoundingBoxes(const std::vector<VirtualRobot::BoundingBox>& boundingBoxes);
43  void drawOccupancyGrid(const OccupancyGrid& grid, float boxPosZ);
44 
45  void prepareScan(const LaserScan& scan, const std::string& frame, const Eigen::Affine3f& scannerPose);
46  void drawScans();
47 
48  private:
49  // as the set is ordered, laser scans will always have the same color
50  std::set<std::string> frames;
51 
52  std::unordered_map<std::string, viz::PointCloud> clouds;
53  };
54 
55 } // namespace armarx::laser_scanner_simulation
armarx::laser_scanner_simulation::ArVizDrawer::drawBoundingBoxes
void drawBoundingBoxes(const std::vector< VirtualRobot::BoundingBox > &boundingBoxes)
Definition: ArVizDrawer.cpp:35
armarx::laser_scanner_simulation::ArVizDrawer::prepareScan
void prepareScan(const LaserScan &scan, const std::string &frame, const Eigen::Affine3f &scannerPose)
Definition: ArVizDrawer.cpp:193
armarx::armem::vision::OccupancyGrid
Definition: types.h:36
armarx::laser_scanner_simulation::ArVizDrawer::drawOccupancyGrid
void drawOccupancyGrid(const OccupancyGrid &grid, float boxPosZ)
Definition: ArVizDrawer.cpp:126
ScopedClient.h
armarx::viz::ScopedClient
viz::Client that will delete (clear) committed layers when destroyed.
Definition: ScopedClient.h:42
Elements.h
armarx::laser_scanner_simulation
Definition: ArVizDrawer.cpp:18
OccupancyGrid.h
armarx::laser_scanner_simulation::ArVizDrawer::drawScans
void drawScans()
Definition: ArVizDrawer.cpp:213
armarx::laser_scanner_simulation::ArVizDrawer
Definition: ArVizDrawer.h:37