An orbital camera, controlled by yaw, pitch, distance, and focal point. More...
#include <orbit_view_controller.h>
Public Member Functions | |
virtual void | handleMouseEvent (ViewportMouseEvent &evt) |
virtual void | lookAt (const Ogre::Vector3 &point) |
This should be implemented in each subclass to aim the camera at the given point in space (relative to the fixed frame). More... | |
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. More... | |
void | move (float x, float y, float z) |
virtual void | onInitialize () |
Do subclass-specific initialization. Called by ViewController::initialize after context_, target_scene_node_, and camera_ are set. More... | |
OrbitViewController () | |
void | pitch (float angle) |
virtual void | reset () |
void | yaw (float angle) |
void | zoom (float amount) |
Move in/out from the focal point, ie. adjust #distance_ by amount. More... | |
virtual | ~OrbitViewController () |
Public Member Functions inherited from rviz::FramePositionTrackingViewController | |
FramePositionTrackingViewController () | |
virtual void | onActivate () |
called by activate(). More... | |
virtual | ~FramePositionTrackingViewController () |
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 () |
virtual QVariant | getViewData (int column, int role) const |
Overridden from Property to give a different background color and bold font if this view is active. More... | |
virtual Qt::ItemFlags | getViewFlags (int column) const |
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 |
virtual void | load (const Config &config) |
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... | |
virtual void | save (Config config) const |
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 () | |
virtual | ~ViewController () |
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... | |
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=0, const char *changed_slot=0, QObject *receiver=0) | |
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... | |
virtual | ~Property () |
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... | |
virtual void | onTargetFrameChanged (const Ogre::Vector3 &old_reference_position, const Ogre::Quaternion &old_reference_orientation) |
Override to implement the change in properties which nullifies the change in target frame. More... | |
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. 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 61 of file orbit_view_controller.cpp.
|
virtual |
Definition at line 93 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 301 of file orbit_view_controller.cpp.
|
virtual |
Reimplemented from rviz::ViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 110 of file orbit_view_controller.cpp.
|
virtual |
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 246 of file orbit_view_controller.cpp.
|
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::FramePositionTrackingViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 212 of file orbit_view_controller.cpp.
void rviz::OrbitViewController::move | ( | float | x, |
float | y, | ||
float | z | ||
) |
Definition at line 326 of file orbit_view_controller.cpp.
|
virtual |
Do subclass-specific initialization. Called by ViewController::initialize after context_, target_scene_node_, and camera_ are set.
Reimplemented from rviz::FramePositionTrackingViewController.
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 81 of file orbit_view_controller.cpp.
|
protectedvirtual |
Override to implement the change in properties which nullifies the change in target frame.
Reimplemented from rviz::FramePositionTrackingViewController.
Definition at line 255 of file orbit_view_controller.cpp.
void rviz::OrbitViewController::pitch | ( | float | angle | ) |
Definition at line 296 of file orbit_view_controller.cpp.
|
virtual |
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 98 of file orbit_view_controller.cpp.
|
protectedvirtual |
Called at 30Hz by ViewManager::update() while this view is active. Override with code that needs to run repeatedly.
Reimplemented from rviz::FramePositionTrackingViewController.
Definition at line 240 of file orbit_view_controller.cpp.
|
protectedvirtual |
Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.
Definition at line 260 of file orbit_view_controller.cpp.
|
protected |
Calculates the focal shape size and update it's geometry.
Definition at line 308 of file orbit_view_controller.cpp.
void rviz::OrbitViewController::yaw | ( | float | angle | ) |
Definition at line 291 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 320 of file orbit_view_controller.cpp.
|
protected |
The camera's distance from the focal point.
Definition at line 114 of file orbit_view_controller.h.
|
protected |
Definition at line 120 of file orbit_view_controller.h.
|
protected |
The point around which the camera "orbits".
Definition at line 115 of file orbit_view_controller.h.
|
protected |
Definition at line 119 of file orbit_view_controller.h.
|
protected |
Whether the focal shape size is fixed or not.
Definition at line 116 of file orbit_view_controller.h.
|
protected |
The focal shape size.
Definition at line 117 of file orbit_view_controller.h.
|
protected |
The camera's pitch (rotation around the x-axis), in radians.
Definition at line 113 of file orbit_view_controller.h.
|
protected |
The camera's yaw (rotation around the y-axis), in radians.
Definition at line 112 of file orbit_view_controller.h.