An orbital camera, controlled by yaw, pitch, distance, and focal point. More...
#include <orbit_view_controller.h>

Public Member Functions | |
| void | handleMouseEvent (ViewportMouseEvent &evt) override |
| void | lookAt (const Ogre::Vector3 &point) override |
| This should be implemented in each subclass to aim the camera at the given point in space (relative to the fixed frame). More... | |
| void | mimic (ViewController *source_view) override |
| Configure the settings of this view controller to give, as much as possible, a similar view as that given by the source_view. More... | |
| void | move (float x, float y, float z) |
| void | onInitialize () override |
| Do subclass-specific initialization. Called by ViewController::initialize after context_, target_scene_node_, and camera_ are set. More... | |
| OrbitViewController () | |
| void | pitch (float angle) |
| void | reset () override |
| void | yaw (float angle) |
| void | zoom (float amount) |
| Move in/out from the focal point, ie. adjust #distance_ by amount. More... | |
| ~OrbitViewController () override | |
Public Member Functions inherited from rviz::FramePositionTrackingViewController | |
| FramePositionTrackingViewController () | |
| void | mimic (ViewController *source_view) override |
| Configure the settings of this view controller to give, as much as possible, a similar view as that given by the source_view. More... | |
| void | onActivate () override |
| called by activate(). More... | |
| void | onInitialize () override |
| Do subclass-specific initialization. More... | |
| void | update (float dt, float ros_dt) override |
| Called at 30Hz by ViewManager::update() while this view is active. Override with code that needs to run repeatedly. More... | |
| ~FramePositionTrackingViewController () override | |
Public Member Functions inherited from rviz::ViewController | |
| void | activate () |
| Called by RenderPanel when this view controller is about to be used. More... | |
| void | emitConfigChanged () |
| Subclasses should call this whenever a change is made which would change the results of toString(). More... | |
| Ogre::Camera * | getCamera () const |
| virtual QString | getClassId () const |
| Return the class identifier which was used to create this instance. This version just returns whatever was set with setClassId(). More... | |
| virtual QCursor | getCursor () |
| QVariant | getViewData (int column, int role) const override |
| Overridden from Property to give a different background color and bold font if this view is active. More... | |
| Qt::ItemFlags | getViewFlags (int column) const override |
| Overridden from Property to make this draggable if it is not active. More... | |
| virtual void | handleKeyEvent (QKeyEvent *event, RenderPanel *panel) |
| Called by MoveTool and InteractionTool when keyboard events are passed to them. More... | |
| void | initialize (DisplayContext *context) |
| Do all setup that can't be done in the constructor. More... | |
| bool | isActive () const |
| void | load (const Config &config) override |
| Load the value of this property and/or its children from the given Config reference. More... | |
| void | lookAt (float x, float y, float z) |
| Convenience function which calls lookAt(Ogre::Vector3). More... | |
| void | save (Config config) const override |
| Write the value of this property and/or its children into the given Config reference. More... | |
| virtual void | setClassId (const QString &class_id) |
| Set the class identifier used to create this instance. Typically this will be set by the factory object which created it. More... | |
| virtual void | transitionFrom (ViewController *previous_view) |
| Called by ViewManager when this ViewController is being made current. More... | |
| ViewController () | |
| ~ViewController () override | |
Public Member Functions inherited from rviz::Property | |
| virtual void | addChild (Property *child, int index=-1) |
| Add a child property. More... | |
| Property * | childAt (int index) const |
| Return the child Property with the given index, or NULL if the index is out of bounds or if the child at that index is not a Property. More... | |
| virtual Property * | childAtUnchecked (int index) const |
| Return the child Property with the given index, without checking whether the index is within bounds. More... | |
| virtual void | collapse () |
| Collapse (hide the children of) this Property. More... | |
| bool | contains (Property *possible_child) const |
| Return true if the list of children includes possible_child, false if not. More... | |
| virtual QWidget * | createEditor (QWidget *parent, const QStyleOptionViewItem &option) |
| Create an editor widget to edit the value of this property. More... | |
| virtual void | expand () |
| Expand (show the children of) this Property. More... | |
| virtual QString | getDescription () const |
| Return the description. More... | |
| virtual bool | getDisableChildren () |
| If true, the children of this property should set their ItemIsEnabled flag to false. More... | |
| virtual bool | getHidden () const |
| Return the hidden/shown state. True means hidden, false means visible. More... | |
| virtual QIcon | getIcon () const |
| PropertyTreeModel * | getModel () const |
| Return the model managing this Property and its childrent. More... | |
| virtual QString | getName () const |
| Return the name of this Property as a QString. More... | |
| std::string | getNameStd () const |
| Return the name of this Property as a std::string. More... | |
| Property * | getParent () const |
| Return the parent Property. More... | |
| virtual bool | getReadOnly () |
| Return the read-only-ness of this property. More... | |
| virtual QVariant | getValue () const |
| Return the value of this Property as a QVariant. If the value has never been set, an invalid QVariant is returned. More... | |
| void | hide () |
| Hide this Property in any PropertyTreeWidgets. More... | |
| void | insertChildSorted (Property *child) |
| Insert a child property, sorted by name. More... | |
| bool | isAncestorOf (Property *possible_child) const |
Returns true if this is an ancestor of possible_child, meaning is the parent or parent of parent etc. More... | |
| virtual void | moveChild (int from_index, int to_index) |
| Move the child at from_index to to_index. More... | |
| virtual int | numChildren () const |
| Return the number of child objects (Property or otherwise). More... | |
| virtual bool | paint (QPainter *painter, const QStyleOptionViewItem &option) const |
| Hook to provide custom painting of the value data (right-hand column) in a subclass. More... | |
| Property (const QString &name=QString(), const QVariant default_value=QVariant(), const QString &description=QString(), Property *parent=nullptr, const char *changed_slot=nullptr, QObject *receiver=nullptr) | |
| Constructor. More... | |
| virtual void | removeChildren (int start_index=0, int count=-1) |
| Remove and delete some or all child Properties. Does not change the value of this Property. More... | |
| int | rowNumberInParent () const |
| Return the row number of this property within its parent, or -1 if it has no parent. More... | |
| virtual void | setDescription (const QString &description) |
| Set the description. More... | |
| virtual void | setHidden (bool hidden) |
| Hide or show this property in any PropertyTreeWidget viewing its parent. More... | |
| virtual void | setIcon (const QIcon &icon) |
| Set the icon to be displayed next to the property. More... | |
| void | setModel (PropertyTreeModel *model) |
| Set the model managing this Property and all its child properties, recursively. More... | |
| virtual void | setName (const QString &name) |
| Set the name. More... | |
| void | setParent (Property *new_parent) |
| Set parent property, without telling the parent. More... | |
| virtual void | setReadOnly (bool read_only) |
| Prevent or allow users to edit this property from a PropertyTreeWidget. More... | |
| void | setShouldBeSaved (bool save) |
| If save is true and getReadOnly() is false, shouldBeSaved will return true; otherwise false. Default is true. More... | |
| virtual bool | setValue (const QVariant &new_value) |
| Set the new value for this property. Returns true if the new value is different from the old value, false if same. More... | |
| bool | shouldBeSaved () const |
| Returns true if the property is not read-only AND has data worth saving. More... | |
| void | show () |
| Show this Property in any PropertyTreeWidgets. More... | |
| virtual Property * | subProp (const QString &sub_name) |
| Return the first child Property with the given name, or the FailureProperty if no child has the name. More... | |
| Property * | takeChild (Property *child) |
| Remove a given child object and return a pointer to it. More... | |
| virtual Property * | takeChildAt (int index) |
| Take a child out of the child list, but don't destroy it. More... | |
| ~Property () override | |
| Destructor. Removes this property from its parent's list of children. More... | |
Protected Member Functions | |
| void | calculatePitchYawFromPosition (const Ogre::Vector3 &position) |
| Calculates pitch and yaw values given a new position and the current focal point. More... | |
| void | onTargetFrameChanged (const Ogre::Vector3 &old_reference_position, const Ogre::Quaternion &old_reference_orientation) override |
| Override to implement the change in properties which nullifies the change in target frame. More... | |
| void | update (float dt, float ros_dt) override |
| Called at 30Hz by ViewManager::update() while this view is active. Override with code that needs to run repeatedly. More... | |
| virtual void | updateCamera () |
| void | updateFocalShapeSize () |
| Calculates the focal shape size and update it's geometry. More... | |
Protected Member Functions inherited from rviz::FramePositionTrackingViewController | |
| bool | getNewTransform () |
| virtual void | updateTargetSceneNode () |
| Update the position of the target_scene_node_ from the TF frame specified in the Target Frame property. More... | |
Protected Member Functions inherited from rviz::ViewController | |
| void | setCursor (CursorType cursor_type) |
| void | setCursor (QCursor cursor) |
| void | setStatus (const QString &message) |
Protected Member Functions inherited from rviz::Property | |
| void | loadValue (const Config &config) |
| Load the value of this property specifically, not including children. More... | |
Protected Attributes | |
| FloatProperty * | distance_property_ |
| The camera's distance from the focal point. More... | |
| bool | dragging_ |
| VectorProperty * | focal_point_property_ |
| The point around which the camera "orbits". More... | |
| Shape * | focal_shape_ |
| BoolProperty * | focal_shape_fixed_size_property_ |
| Whether the focal shape size is fixed or not. More... | |
| FloatProperty * | focal_shape_size_property_ |
| The focal shape size. More... | |
| FloatProperty * | pitch_property_ |
| The camera's pitch (rotation around the x-axis), in radians. More... | |
| FloatProperty * | yaw_property_ |
| The camera's yaw (rotation around the y-axis), in radians. More... | |
Protected Attributes inherited from rviz::FramePositionTrackingViewController | |
| Ogre::Quaternion | reference_orientation_ |
| Ogre::Vector3 | reference_position_ |
| TfFrameProperty * | target_frame_property_ |
| Ogre::SceneNode * | target_scene_node_ |
Protected Attributes inherited from rviz::ViewController | |
| Ogre::Camera * | camera_ |
| DisplayContext * | context_ |
| QCursor | cursor_ |
| BoolProperty * | invert_z_ |
| bool | is_active_ |
| FloatProperty * | near_clip_property_ |
| BoolProperty * | stereo_enable_ |
| FloatProperty * | stereo_eye_separation_ |
| BoolProperty * | stereo_eye_swap_ |
| FloatProperty * | stereo_focal_distance_ |
Protected Attributes inherited from rviz::Property | |
| bool | child_indexes_valid_ |
| True if row_number_within_parent_ of all children is valid, false if not. More... | |
| QIcon | icon_ |
| PropertyTreeModel * | model_ |
| Pointer to the PropertyTreeModel managing this property tree. More... | |
| QVariant | value_ |
| This is the central property value. If you set it directly in a subclass, do so with care because many things depend on the aboutToChange() and changed() events emitted by setValue(). More... | |
Additional Inherited Members | |
Signals inherited from rviz::ViewController | |
| void | configChanged () |
Signals inherited from rviz::Property | |
| void | aboutToChange () |
| Emitted by setValue() just before the value has changed. More... | |
| void | changed () |
| Emitted by setValue() just after the value has changed. More... | |
| void | childListChanged (Property *this_property) |
| Emitted after insertions and deletions of child Properties. More... | |
Static Public Member Functions inherited from rviz::ViewController | |
| static QString | formatClassId (const QString &class_id) |
Protected Types inherited from rviz::ViewController | |
| enum | CursorType { Default, Rotate2D, Rotate3D, MoveXY, MoveZ, Zoom, Crosshair } |
Protected Slots inherited from rviz::FramePositionTrackingViewController | |
| virtual void | updateTargetFrame () |
| 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(). More... | |
An orbital camera, controlled by yaw, pitch, distance, and focal point.
This camera is based on the equation of a sphere in spherical coordinates:
x = d*cos(theta)sin(phi) y = d*cos(phi) z = d*sin(theta)sin(phi)
Where:
d = #distance_
theta = #yaw_
phi = #pitch_
Definition at line 61 of file orbit_view_controller.h.
| rviz::OrbitViewController::OrbitViewController | ( | ) |
Definition at line 60 of file orbit_view_controller.cpp.
|
override |
Definition at line 97 of file orbit_view_controller.cpp.
|
protected |
Calculates pitch and yaw values given a new position and the current focal point.
| position | Position to calculate the pitch/yaw for |
Definition at line 309 of file orbit_view_controller.cpp.
|
overridevirtual |
Reimplemented from rviz::ViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 114 of file orbit_view_controller.cpp.
|
overridevirtual |
This should be implemented in each subclass to aim the camera at the given point in space (relative to the fixed frame).
Reimplemented from rviz::ViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 252 of file orbit_view_controller.cpp.
|
overridevirtual |
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.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 217 of file orbit_view_controller.cpp.
| void rviz::OrbitViewController::move | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Definition at line 333 of file orbit_view_controller.cpp.
|
overridevirtual |
Do subclass-specific initialization. Called by ViewController::initialize after context_, target_scene_node_, and camera_ are set.
Reimplemented from rviz::ViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 85 of file orbit_view_controller.cpp.
|
overrideprotectedvirtual |
Override to implement the change in properties which nullifies the change in target frame.
Reimplemented from rviz::FramePositionTrackingViewController.
Definition at line 262 of file orbit_view_controller.cpp.
| void rviz::OrbitViewController::pitch | ( | float | angle | ) |
Definition at line 304 of file orbit_view_controller.cpp.
|
overridevirtual |
Reset the view controller to some sane initial state, like looking at 0,0,0 from a few meters away.
Implements rviz::ViewController.
Definition at line 102 of file orbit_view_controller.cpp.
|
overrideprotectedvirtual |
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 246 of file orbit_view_controller.cpp.
|
protectedvirtual |
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 268 of file orbit_view_controller.cpp.
|
protected |
Calculates the focal shape size and update it's geometry.
Definition at line 316 of file orbit_view_controller.cpp.
| void rviz::OrbitViewController::yaw | ( | float | angle | ) |
Definition at line 299 of file orbit_view_controller.cpp.
| void rviz::OrbitViewController::zoom | ( | float | amount | ) |
Move in/out from the focal point, ie. adjust #distance_ by amount.
| amount | The distance to move. Positive amount moves towards the focal point, negative moves away |
Definition at line 327 of file orbit_view_controller.cpp.
|
protected |
The camera's distance from the focal point.
Definition at line 116 of file orbit_view_controller.h.
|
protected |
Definition at line 122 of file orbit_view_controller.h.
|
protected |
The point around which the camera "orbits".
Definition at line 117 of file orbit_view_controller.h.
|
protected |
Definition at line 121 of file orbit_view_controller.h.
|
protected |
Whether the focal shape size is fixed or not.
Definition at line 118 of file orbit_view_controller.h.
|
protected |
The focal shape size.
Definition at line 119 of file orbit_view_controller.h.
|
protected |
The camera's pitch (rotation around the x-axis), in radians.
Definition at line 115 of file orbit_view_controller.h.
|
protected |
The camera's yaw (rotation around the y-axis), in radians.
Definition at line 114 of file orbit_view_controller.h.