ViewController.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 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_RENDERING_VIEWCONTROLLER_HH_
18#define GAZEBO_RENDERING_VIEWCONTROLLER_HH_
19
20#include <string>
21
22#include <ignition/math/Vector3.hh>
23
25#include "gazebo/util/system.hh"
26
27namespace gazebo
28{
29 namespace common
30 {
31 class MouseEvent;
32 }
33
34 namespace rendering
35 {
38
41 class GZ_RENDERING_VISIBLE ViewController
42 {
45 public: explicit ViewController(UserCameraPtr _camera);
46
48 public: virtual ~ViewController();
49
51 public: virtual void Init() = 0;
52
57 public: virtual void Init(const ignition::math::Vector3d &_focalPoint,
58 const double _yaw = 0, const double _pitch = 0);
59
62 public: virtual void Update() = 0;
63
67 public: virtual void Resize(const unsigned int _width,
68 const unsigned int _height);
69
72 public: void SetEnabled(bool _value);
73
76 public: virtual void HandleMouseEvent(
77 const common::MouseEvent &_event) = 0;
78
81 public: virtual void HandleKeyReleaseEvent(const std::string &_key) = 0;
82
85 public: virtual void HandleKeyPressEvent(const std::string &_key) = 0;
86
89 public: std::string GetTypeString() const;
90
93
95 protected: bool enabled;
96
98 protected: std::string typeString;
99 };
101 }
102}
103#endif
common
Definition FuelModelDatabase.hh:37
rendering
Definition RenderEngine.hh:31
Generic description of a mouse event.
Definition MouseEvent.hh:36
Base class for view controllers.
Definition ViewController.hh:42
virtual void Update()=0
Update the controller, which should update the position of the Camera.
virtual void HandleKeyReleaseEvent(const std::string &_key)=0
Handle a key release event.
ViewController(UserCameraPtr _camera)
Constructor.
virtual void Init()=0
Initialize the view controller.
void SetEnabled(bool _value)
Set whether the controller is enabled.
virtual void HandleMouseEvent(const common::MouseEvent &_event)=0
Handle a mouse event.
virtual void Resize(const unsigned int _width, const unsigned int _height)
Called by the UserCamera when a resize event occurs.
virtual ~ViewController()
Destructor.
bool enabled
True if enabled.
Definition ViewController.hh:95
UserCameraPtr camera
Pointer to the camera to control.
Definition ViewController.hh:92
std::string GetTypeString() const
Get the type of view controller.
virtual void HandleKeyPressEvent(const std::string &_key)=0
Handle a key press event.
std::string typeString
Type of view controller.
Definition ViewController.hh:98
virtual void Init(const ignition::math::Vector3d &_focalPoint, const double _yaw=0, const double _pitch=0)
Initialize with a focus point.
boost::shared_ptr< UserCamera > UserCameraPtr
Definition RenderTypes.hh:94
Forward declarations for the common classes.
Definition Animation.hh:27