Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rviz::OrbitViewController Class Reference

An orbital camera, controlled by yaw, pitch, distance, and focal point. More...

#include <orbit_view_controller.h>

Inheritance diagram for rviz::OrbitViewController:
Inheritance graph
[legend]

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...
 
PropertychildAt (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 PropertychildAtUnchecked (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
 
PropertyTreeModelgetModel () 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...
 
PropertygetParent () 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 PropertysubProp (const QString &sub_name)
 Return the first child Property with the given name, or the FailureProperty if no child has the name. More...
 
PropertytakeChild (Property *child)
 Remove a given child object and return a pointer to it. More...
 
virtual PropertytakeChildAt (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

FloatPropertydistance_property_
 The camera's distance from the focal point. More...
 
bool dragging_
 
VectorPropertyfocal_point_property_
 The point around which the camera "orbits". More...
 
Shapefocal_shape_
 
BoolPropertyfocal_shape_fixed_size_property_
 Whether the focal shape size is fixed or not. More...
 
FloatPropertyfocal_shape_size_property_
 The focal shape size. More...
 
FloatPropertypitch_property_
 The camera's pitch (rotation around the x-axis), in radians. More...
 
FloatPropertyyaw_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_
 
TfFramePropertytarget_frame_property_
 
Ogre::SceneNode * target_scene_node_
 
- Protected Attributes inherited from rviz::ViewController
Ogre::Camera * camera_
 
DisplayContextcontext_
 
QCursor cursor_
 
BoolPropertyinvert_z_
 
bool is_active_
 
FloatPropertynear_clip_property_
 
BoolPropertystereo_enable_
 
FloatPropertystereo_eye_separation_
 
BoolPropertystereo_eye_swap_
 
FloatPropertystereo_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_
 
PropertyTreeModelmodel_
 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ OrbitViewController()

rviz::OrbitViewController::OrbitViewController ( )

Definition at line 60 of file orbit_view_controller.cpp.

◆ ~OrbitViewController()

rviz::OrbitViewController::~OrbitViewController ( )
override

Definition at line 97 of file orbit_view_controller.cpp.

Member Function Documentation

◆ calculatePitchYawFromPosition()

void rviz::OrbitViewController::calculatePitchYawFromPosition ( const Ogre::Vector3 &  position)
protected

Calculates pitch and yaw values given a new position and the current focal point.

Parameters
positionPosition to calculate the pitch/yaw for

Definition at line 309 of file orbit_view_controller.cpp.

◆ handleMouseEvent()

void rviz::OrbitViewController::handleMouseEvent ( ViewportMouseEvent evt)
overridevirtual

Reimplemented from rviz::ViewController.

Reimplemented in rviz::ThirdPersonFollowerViewController, and rviz::XYOrbitViewController.

Definition at line 114 of file orbit_view_controller.cpp.

◆ lookAt()

void rviz::OrbitViewController::lookAt ( const Ogre::Vector3 &  point)
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.

◆ mimic()

void rviz::OrbitViewController::mimic ( ViewController source_view)
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.

◆ move()

void rviz::OrbitViewController::move ( float  x,
float  y,
float  z 
)

Definition at line 333 of file orbit_view_controller.cpp.

◆ onInitialize()

void rviz::OrbitViewController::onInitialize ( )
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.

◆ onTargetFrameChanged()

void rviz::OrbitViewController::onTargetFrameChanged ( const Ogre::Vector3 &  ,
const Ogre::Quaternion &   
)
overrideprotectedvirtual

Override to implement the change in properties which nullifies the change in target frame.

See also
updateTargetFrame()

Reimplemented from rviz::FramePositionTrackingViewController.

Definition at line 262 of file orbit_view_controller.cpp.

◆ pitch()

void rviz::OrbitViewController::pitch ( float  angle)

Definition at line 304 of file orbit_view_controller.cpp.

◆ reset()

void rviz::OrbitViewController::reset ( )
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.

◆ update()

void rviz::OrbitViewController::update ( float  dt,
float  ros_dt 
)
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.

◆ updateCamera()

void rviz::OrbitViewController::updateCamera ( )
protectedvirtual

◆ updateFocalShapeSize()

void rviz::OrbitViewController::updateFocalShapeSize ( )
protected

Calculates the focal shape size and update it's geometry.

Definition at line 316 of file orbit_view_controller.cpp.

◆ yaw()

void rviz::OrbitViewController::yaw ( float  angle)

Definition at line 299 of file orbit_view_controller.cpp.

◆ zoom()

void rviz::OrbitViewController::zoom ( float  amount)

Move in/out from the focal point, ie. adjust #distance_ by amount.

Parameters
amountThe distance to move. Positive amount moves towards the focal point, negative moves away

Definition at line 327 of file orbit_view_controller.cpp.

Member Data Documentation

◆ distance_property_

FloatProperty* rviz::OrbitViewController::distance_property_
protected

The camera's distance from the focal point.

Definition at line 116 of file orbit_view_controller.h.

◆ dragging_

bool rviz::OrbitViewController::dragging_
protected

Definition at line 122 of file orbit_view_controller.h.

◆ focal_point_property_

VectorProperty* rviz::OrbitViewController::focal_point_property_
protected

The point around which the camera "orbits".

Definition at line 117 of file orbit_view_controller.h.

◆ focal_shape_

Shape* rviz::OrbitViewController::focal_shape_
protected

Definition at line 121 of file orbit_view_controller.h.

◆ focal_shape_fixed_size_property_

BoolProperty* rviz::OrbitViewController::focal_shape_fixed_size_property_
protected

Whether the focal shape size is fixed or not.

Definition at line 118 of file orbit_view_controller.h.

◆ focal_shape_size_property_

FloatProperty* rviz::OrbitViewController::focal_shape_size_property_
protected

The focal shape size.

Definition at line 119 of file orbit_view_controller.h.

◆ pitch_property_

FloatProperty* rviz::OrbitViewController::pitch_property_
protected

The camera's pitch (rotation around the x-axis), in radians.

Definition at line 115 of file orbit_view_controller.h.

◆ yaw_property_

FloatProperty* rviz::OrbitViewController::yaw_property_
protected

The camera's yaw (rotation around the y-axis), in radians.

Definition at line 114 of file orbit_view_controller.h.


The documentation for this class was generated from the following files:


rviz
Author(s): Dave Hershberger, David Gossow, Josh Faust
autogenerated on Sat May 27 2023 02:06:26