ModelAlign.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16*/
17#ifndef GAZEBO_GUI_MODELALIGN_HH_
18#define GAZEBO_GUI_MODELALIGN_HH_
19
20#include <memory>
21#include <string>
22#include <vector>
23
24#include <ignition/math/Box.hh>
25#include <ignition/math/Pose3.hh>
26#include <ignition/math/Vector3.hh>
27
31
33
34#include "gazebo/util/system.hh"
35
37GZ_SINGLETON_DECLARE(GZ_GUI_VISIBLE, gazebo, gui, ModelAlign)
38
39namespace gazebo
40{
41 namespace gui
42 {
43 class ModelAlignPrivate;
44
47 class GZ_GUI_VISIBLE ModelAlign : public SingletonT<ModelAlign>
48 {
50 private: ModelAlign();
51
53 private: virtual ~ModelAlign();
54
56 public: void Init();
57
60 public: void Clear();
61
69 public: void AlignVisuals(std::vector<rendering::VisualPtr> _visuals,
70 const std::string &_axis, const std::string &_config,
71 const std::string &_target, const bool _publish = true,
72 const bool _inverted = false);
73
78 private: void MinMax(
79 const std::vector<ignition::math::Vector3d> &_vertices,
80 ignition::math::Vector3d &_min,
81 ignition::math::Vector3d &_max);
82
88 private: void Transform(const ignition::math::Box &_bbox,
89 const ignition::math::Pose3d &_worldPose,
90 std::vector<ignition::math::Vector3d> &_vertices);
91
97 private: void SetHighlighted(const rendering::VisualPtr &_vis,
98 const bool _highlight);
99
101 private: friend class SingletonT<ModelAlign>;
102
105 private: std::unique_ptr<ModelAlignPrivate> dataPtr;
106 };
107 }
108}
109#endif
gui
Definition KeyEventHandler.hh:29
gazebo
Definition ModelAlign.hh:37
gui
Definition ModelAlign.hh:37
Singleton template class.
Definition SingletonT.hh:34
A gui tool for aligning models.
Definition ModelAlign.hh:48
void Init()
Initialize the model alignment tool.
void Clear()
Clear the model alignment tool.
void AlignVisuals(std::vector< rendering::VisualPtr > _visuals, const std::string &_axis, const std::string &_config, const std::string &_target, const bool _publish=true, const bool _inverted=false)
Callback when a specific alignment configuration is set.
#define GZ_SINGLETON_DECLARE(visibility, n1, n2, singletonType)
Helper to declare typed SingletonT.
Definition SingletonT.hh:58
std::shared_ptr< Visual > VisualPtr
Definition RenderTypes.hh:114
Forward declarations for the common classes.
Definition Animation.hh:27