An un-constrained "flying" camera, specified by an eye point, focus point, and up vector. More...
#include <tablet_view_controller.h>

| Public Types | |
| enum | { TRANSITION_LINEAR = 0, TRANSITION_SPHERICAL } | 
| Public Member Functions | |
| virtual void | handleMouseEvent (rviz::ViewportMouseEvent &evt) | 
| virtual void | lookAt (const Ogre::Vector3 &point) | 
| Calls beginNewTransition() to move the focus point to the point provided, assumed to be in the Rviz Fixed Frame. | |
| virtual void | mimic (ViewController *source_view) | 
| Configure the settings of this view controller to give, as much as possible, a similar view as that given by the source_view. | |
| void | move_eye (float x, float y, float z) | 
| Applies a translation to only the eye point. | |
| void | move_focus_and_eye (float x, float y, float z) | 
| Applies a translation to the focus and eye points. | |
| void | moveEyeWithFocusTo (const Ogre::Vector3 &point) | 
| Calls beginNewTransition() to move the eye to the point given, keeping the direction fixed. | |
| virtual void | onActivate () | 
| called by activate(). | |
| virtual void | onInitialize () | 
| Do subclass-specific initialization. Called by ViewController::initialize after context_ and camera_ are set. | |
| void | orbitCameraTo (const Ogre::Vector3 &point) | 
| Calls beginNewTransition() with the focus point fixed, moving the eye to the point given. | |
| virtual void | reset () | 
| Resets the camera parameters to a sane value. | |
| TabletViewController () | |
| virtual void | transitionFrom (ViewController *previous_view) | 
| Called by ViewManager when this ViewController is being made current. | |
| void | yaw_pitch_roll (float yaw, float pitch, float roll) | 
| Applies a body-fixed-axes sequence of rotations; only accurate for small angles. | |
| virtual | ~TabletViewController () | 
| Protected Slots | |
| virtual void | onDistancePropertyChanged () | 
| Called when distance property is changed; computes new eye position. | |
| virtual void | onEyePropertyChanged () | 
| Called when eye property is changed; computes new distance. | |
| virtual void | onFocusPropertyChanged () | 
| Called focus property is changed; computes new distance. | |
| virtual void | onUpPropertyChanged () | 
| Called when up vector property is changed (does nothing for now...). | |
| virtual void | updateAttachedFrame () | 
| Called when Target Frame property changes while view is active. Purpose is to change values in the view controller (like a position offset) such that the actual viewpoint does not change. Calls updateTargetSceneNode() and onTargetFrameChanged(). | |
| void | updateMousePointPublishTopics () | 
| void | updatePublishTopics () | 
| void | updateTopics () | 
| Protected Member Functions | |
| Ogre::Vector3 | attachedLocalToFixedFrame (const Ogre::Vector3 &v) | 
| void | beginNewTransition (const Ogre::Vector3 &eye, const Ogre::Vector3 &focus, const Ogre::Vector3 &up, const ros::Duration &transition_time) | 
| Begins a camera movement animation to the given goal points. | |
| void | cameraPlacementCallback (const view_controller_msgs::CameraPlacementConstPtr &cp_ptr) | 
| void | cancelTransition () | 
| Cancels any currently active camera movement. | |
| void | connectPositionProperties () | 
| Convenience function; connects the signals/slots for position properties. | |
| void | disconnectPositionProperties () | 
| Convenience function; disconnects the signals/slots for position properties. | |
| Ogre::Vector3 | fixedFrameToAttachedLocal (const Ogre::Vector3 &v) | 
| float | getDistanceFromCameraToFocalPoint () | 
| Return the distance between camera and focal point. | |
| Ogre::Quaternion | getOrientation () | 
| Return a Quaternion. | |
| virtual void | onAttachedFrameChanged (const Ogre::Vector3 &old_reference_position, const Ogre::Quaternion &old_reference_orientation) | 
| Override to implement the change in properties which nullifies the change in attached frame. | |
| void | publishCurrentPlacement () | 
| void | publishMouseEvent (rviz::ViewportMouseEvent &event) | 
| void | setPropertiesFromCamera (Ogre::Camera *source_camera) | 
| void | transformCameraPlacementToAttachedFrame (view_controller_msgs::CameraPlacement &cp) | 
| virtual void | update (float dt, float ros_dt) | 
| Called at 30Hz by ViewManager::update() while this view is active. Override with code that needs to run repeatedly. | |
| void | updateAttachedSceneNode () | 
| Update the position of the attached_scene_node_ from the TF frame specified in the Attached Frame property. | |
| void | updateCamera () | 
| Updates the Ogre camera properties from the view controller properties. | |
| Protected Attributes | |
| bool | animate_ | 
| rviz::TfFrameProperty * | attached_frame_property_ | 
| Ogre::SceneNode * | attached_scene_node_ | 
| rviz::RosTopicProperty * | camera_placement_publish_topic_property_ | 
| rviz::RosTopicProperty * | camera_placement_topic_property_ | 
| ros::Duration | current_transition_duration_ | 
| rviz::FloatProperty * | default_transition_time_property_ | 
| A default time for any animation requests. | |
| rviz::FloatProperty * | distance_property_ | 
| The camera's distance from the focal point. | |
| bool | dragging_ | 
| A flag indicating the dragging state of the mouse. | |
| rviz::VectorProperty * | eye_point_property_ | 
| The position of the camera. | |
| rviz::BoolProperty * | fixed_up_property_ | 
| If True, "up" is fixed to ... up. | |
| rviz::Shape * | focal_shape_ | 
| A small ellipsoid to show the focus point. | |
| rviz::VectorProperty * | focus_point_property_ | 
| The point around which the camera "orbits". | |
| Ogre::Vector3 | goal_focus_ | 
| Ogre::Vector3 | goal_position_ | 
| Ogre::Vector3 | goal_up_ | 
| QCursor | interaction_disabled_cursor_ | 
| A cursor for indicating mouse interaction is disabled. | |
| rviz::EditableEnumProperty * | interaction_mode_property_ | 
| Select between Orbit or FPS control style. | |
| rviz::BoolProperty * | mouse_enabled_property_ | 
| If True, most user changes to camera state are disabled. | |
| rviz::RosTopicProperty * | mouse_point_publish_topic_property_ | 
| ros::Publisher | mouse_point_publisher_ | 
| ros::NodeHandle | nh_ | 
| ros::Publisher | placement_publisher_ | 
| ros::Subscriber | placement_subscriber_ | 
| Ogre::Quaternion | reference_orientation_ | 
| Used to store the orientation of the attached frame relative to <Fixed frame>=""> | |
| Ogre::Vector3 | reference_position_ | 
| Used to store the position of the attached frame relative to <Fixed frame>=""> | |
| Ogre::Vector3 | start_focus_ | 
| Ogre::Vector3 | start_position_ | 
| Ogre::Vector3 | start_up_ | 
| ros::Time | trajectory_start_time_ | 
| ros::Time | transition_start_time_ | 
| rviz::VectorProperty * | up_vector_property_ | 
| The up vector for the camera. | |
An un-constrained "flying" camera, specified by an eye point, focus point, and up vector.
Definition at line 64 of file tablet_view_controller.h.
| anonymous enum | 
Definition at line 69 of file tablet_view_controller.h.
Definition at line 102 of file tablet_view_controller.cpp.
Definition at line 154 of file tablet_view_controller.cpp.
| Ogre::Vector3 jsk_rviz_plugins::TabletViewController::attachedLocalToFixedFrame | ( | const Ogre::Vector3 & | v | ) |  [inline, protected] | 
Definition at line 193 of file tablet_view_controller.h.
| void jsk_rviz_plugins::TabletViewController::beginNewTransition | ( | const Ogre::Vector3 & | eye, | 
| const Ogre::Vector3 & | focus, | ||
| const Ogre::Vector3 & | up, | ||
| const ros::Duration & | transition_time | ||
| ) |  [protected] | 
Begins a camera movement animation to the given goal points.
Definition at line 585 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::cameraPlacementCallback | ( | const view_controller_msgs::CameraPlacementConstPtr & | cp_ptr | ) |  [protected] | 
Definition at line 619 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::cancelTransition | ( | ) |  [protected] | 
Cancels any currently active camera movement.
Definition at line 614 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::connectPositionProperties | ( | ) |  [protected] | 
Convenience function; connects the signals/slots for position properties.
Definition at line 263 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::disconnectPositionProperties | ( | ) |  [protected] | 
Convenience function; disconnects the signals/slots for position properties.
Definition at line 271 of file tablet_view_controller.cpp.
| Ogre::Vector3 jsk_rviz_plugins::TabletViewController::fixedFrameToAttachedLocal | ( | const Ogre::Vector3 & | v | ) |  [inline, protected] | 
Definition at line 192 of file tablet_view_controller.h.
| float jsk_rviz_plugins::TabletViewController::getDistanceFromCameraToFocalPoint | ( | ) |  [protected] | 
Return the distance between camera and focal point.
Definition at line 362 of file tablet_view_controller.cpp.
| Ogre::Quaternion jsk_rviz_plugins::TabletViewController::getOrientation | ( | ) |  [protected] | 
Return a Quaternion.
Definition at line 836 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::handleMouseEvent | ( | rviz::ViewportMouseEvent & | evt | ) |  [virtual] | 
Reimplemented from rviz::ViewController.
Definition at line 386 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::lookAt | ( | const Ogre::Vector3 & | point | ) |  [virtual] | 
Calls beginNewTransition() to move the focus point to the point provided, assumed to be in the Rviz Fixed Frame.
Reimplemented from rviz::ViewController.
Definition at line 719 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::mimic | ( | ViewController * | source_view | ) |  [virtual] | 
Configure the settings of this view controller to give, as much as possible, a similar view as that given by the source_view.
source_view must return a valid Ogre::Camera* from getCamera(). 
Reimplemented from rviz::ViewController.
Definition at line 540 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::move_eye | ( | float | x, | 
| float | y, | ||
| float | z | ||
| ) | 
Applies a translation to only the eye point.
Definition at line 848 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::move_focus_and_eye | ( | float | x, | 
| float | y, | ||
| float | z | ||
| ) | 
Applies a translation to the focus and eye points.
Definition at line 841 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::moveEyeWithFocusTo | ( | const Ogre::Vector3 & | point | ) | 
Calls beginNewTransition() to move the eye to the point given, keeping the direction fixed.
Definition at line 741 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onActivate | ( | ) |  [virtual] | 
called by activate().
This version calls updateAttachedSceneNode().
Reimplemented from rviz::ViewController.
Definition at line 243 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onAttachedFrameChanged | ( | const Ogre::Vector3 & | old_reference_position, | 
| const Ogre::Quaternion & | old_reference_orientation | ||
| ) |  [protected, virtual] | 
Override to implement the change in properties which nullifies the change in attached frame.
Definition at line 342 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onDistancePropertyChanged | ( | ) |  [protected, virtual, slot] | 
Called when distance property is changed; computes new eye position.
Definition at line 289 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onEyePropertyChanged | ( | ) |  [protected, virtual, slot] | 
Called when eye property is changed; computes new distance.
Definition at line 279 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onFocusPropertyChanged | ( | ) |  [protected, virtual, slot] | 
Called focus property is changed; computes new distance.
Definition at line 284 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onInitialize | ( | ) |  [virtual] | 
Do subclass-specific initialization. Called by ViewController::initialize after context_ and camera_ are set.
This version sets up the attached_scene_node, focus shape, and subscribers.
Reimplemented from rviz::ViewController.
Definition at line 227 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::onUpPropertyChanged | ( | ) |  [protected, virtual, slot] | 
Called when up vector property is changed (does nothing for now...).
Definition at line 297 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::orbitCameraTo | ( | const Ogre::Vector3 & | point | ) | 
Calls beginNewTransition() with the focus point fixed, moving the eye to the point given.
Definition at line 734 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::publishCurrentPlacement | ( | ) |  [protected] | 
Definition at line 186 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::publishMouseEvent | ( | rviz::ViewportMouseEvent & | event | ) |  [protected] | 
Definition at line 172 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::reset | ( | ) |  [virtual] | 
Resets the camera parameters to a sane value.
Implements rviz::ViewController.
Definition at line 367 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::setPropertiesFromCamera | ( | Ogre::Camera * | source_camera | ) |  [protected] | 
Definition at line 525 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::transformCameraPlacementToAttachedFrame | ( | view_controller_msgs::CameraPlacement & | cp | ) |  [protected] | 
Definition at line 690 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::transitionFrom | ( | ViewController * | previous_view | ) |  [virtual] | 
Called by ViewManager when this ViewController is being made current.
| previous_view | is the previous "current" view, and will not be NULL. | 
This gives ViewController subclasses an opportunity to implement a smooth transition from a previous viewpoint to the new viewpoint.
Reimplemented from rviz::ViewController.
Definition at line 568 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::update | ( | float | dt, | 
| float | ros_dt | ||
| ) |  [protected, virtual] | 
Called at 30Hz by ViewManager::update() while this view is active. Override with code that needs to run repeatedly.
Reimplemented from rviz::ViewController.
Definition at line 749 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updateAttachedFrame | ( | ) |  [protected, virtual, slot] | 
Called when Target Frame property changes while view is active. Purpose is to change values in the view controller (like a position offset) such that the actual viewpoint does not change. Calls updateTargetSceneNode() and onTargetFrameChanged().
Definition at line 314 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updateAttachedSceneNode | ( | ) |  [protected] | 
Update the position of the attached_scene_node_ from the TF frame specified in the Attached Frame property.
Definition at line 324 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updateCamera | ( | ) |  [protected] | 
Updates the Ogre camera properties from the view controller properties.
Definition at line 785 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updateMousePointPublishTopics | ( | ) |  [protected, slot] | 
Definition at line 166 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updatePublishTopics | ( | ) |  [protected, slot] | 
Definition at line 160 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::updateTopics | ( | ) |  [protected, slot] | 
Definition at line 217 of file tablet_view_controller.cpp.
| void jsk_rviz_plugins::TabletViewController::yaw_pitch_roll | ( | float | yaw, | 
| float | pitch, | ||
| float | roll | ||
| ) | 
Applies a body-fixed-axes sequence of rotations; only accurate for small angles.
Definition at line 794 of file tablet_view_controller.cpp.
| bool jsk_rviz_plugins::TabletViewController::animate_  [protected] | 
Definition at line 231 of file tablet_view_controller.h.
Definition at line 224 of file tablet_view_controller.h.
| Ogre::SceneNode* jsk_rviz_plugins::TabletViewController::attached_scene_node_  [protected] | 
Definition at line 225 of file tablet_view_controller.h.
| rviz::RosTopicProperty* jsk_rviz_plugins::TabletViewController::camera_placement_publish_topic_property_  [protected] | 
Definition at line 220 of file tablet_view_controller.h.
| rviz::RosTopicProperty* jsk_rviz_plugins::TabletViewController::camera_placement_topic_property_  [protected] | 
Definition at line 219 of file tablet_view_controller.h.
Definition at line 237 of file tablet_view_controller.h.
| rviz::FloatProperty* jsk_rviz_plugins::TabletViewController::default_transition_time_property_  [protected] | 
A default time for any animation requests.
Definition at line 217 of file tablet_view_controller.h.
The camera's distance from the focal point.
Definition at line 213 of file tablet_view_controller.h.
| bool jsk_rviz_plugins::TabletViewController::dragging_  [protected] | 
A flag indicating the dragging state of the mouse.
Definition at line 240 of file tablet_view_controller.h.
The position of the camera.
Definition at line 214 of file tablet_view_controller.h.
If True, "up" is fixed to ... up.
Definition at line 211 of file tablet_view_controller.h.
A small ellipsoid to show the focus point.
Definition at line 239 of file tablet_view_controller.h.
The point around which the camera "orbits".
Definition at line 215 of file tablet_view_controller.h.
Definition at line 233 of file tablet_view_controller.h.
Definition at line 232 of file tablet_view_controller.h.
Definition at line 234 of file tablet_view_controller.h.
| QCursor jsk_rviz_plugins::TabletViewController::interaction_disabled_cursor_  [protected] | 
A cursor for indicating mouse interaction is disabled.
Definition at line 242 of file tablet_view_controller.h.
| rviz::EditableEnumProperty* jsk_rviz_plugins::TabletViewController::interaction_mode_property_  [protected] | 
Select between Orbit or FPS control style.
Definition at line 210 of file tablet_view_controller.h.
If True, most user changes to camera state are disabled.
Definition at line 209 of file tablet_view_controller.h.
| rviz::RosTopicProperty* jsk_rviz_plugins::TabletViewController::mouse_point_publish_topic_property_  [protected] | 
Definition at line 221 of file tablet_view_controller.h.
Definition at line 249 of file tablet_view_controller.h.
Definition at line 207 of file tablet_view_controller.h.
Definition at line 247 of file tablet_view_controller.h.
Definition at line 245 of file tablet_view_controller.h.
| Ogre::Quaternion jsk_rviz_plugins::TabletViewController::reference_orientation_  [protected] | 
Used to store the orientation of the attached frame relative to <Fixed frame>="">
Definition at line 227 of file tablet_view_controller.h.
Used to store the position of the attached frame relative to <Fixed frame>="">
Definition at line 228 of file tablet_view_controller.h.
Definition at line 233 of file tablet_view_controller.h.
Definition at line 232 of file tablet_view_controller.h.
Definition at line 234 of file tablet_view_controller.h.
Definition at line 235 of file tablet_view_controller.h.
Definition at line 236 of file tablet_view_controller.h.
The up vector for the camera.
Definition at line 216 of file tablet_view_controller.h.