A first-person camera, controlled by yaw, pitch, roll, and position. More...
#include <fps_view_controller.h>
Public Member Functions | |
FPSViewController () | |
void | handleMouseEvent (ViewportMouseEvent &event) 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_ and camera_ are set. Default implementation does nothing. More... | |
void | reset () override |
void | rotate (float yaw, float pitch, float roll) |
~FPSViewController () override=default | |
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... | |
template<typename Func > | |
std::enable_if<!QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (const QObject *context, Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot functor, considering context. More... | |
QMetaObject::Connection | connect (const QObject *receiver, const char *slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot of receiver. More... | |
template<typename Func , typename R > | |
std::enable_if< QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (const R *receiver, Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot member function of receiver object. More... | |
template<typename Func > | |
std::enable_if<!QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot functor, using this as context. 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 () const |
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... | |
template<typename Func , typename P > | |
Property (const QString &name, const QVariant &default_value, const QString &description, P *parent, Func &&changed_slot) | |
template<typename Func , typename R > | |
Property (const QString &name, const QVariant &default_value, const QString &description, Property *parent, Func &&changed_slot, const R *receiver) | |
Property (const QString &name=QString(), const QVariant &default_value=QVariant(), const QString &description=QString(), Property *parent=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 false, neither the property nor its children will get saved. If true (the default), the property itself will only get saved if it is not read-only; children will get saved in any case (according to their save + read-only flags). 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 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 Slots | |
virtual void | changedOrientation () |
virtual void | changedPosition () |
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... | |
Protected Member Functions | |
Ogre::Quaternion | getOrientation (float yaw, float pitch, float roll) |
yield camera orientation for given Euler angles 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 | resetRoll () |
zero roll angle More... | |
void | setPropertiesFromCamera () |
set yaw, pitch, roll, position properties from camera 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 * | pitch_property_ |
The camera's pitch (rotation around the y-axis), in radians. More... | |
VectorProperty * | position_property_ |
The camera's position. More... | |
FloatProperty * | roll_property_ |
The camera's roll (rotation around the x-axis), in radians. More... | |
FloatProperty * | yaw_property_ |
The camera's yaw (rotation around the z-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... | |
Static Protected Attributes | |
static const Ogre::Quaternion | ROBOT_TO_CAMERA_ROTATION |
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 } |
A first-person camera, controlled by yaw, pitch, roll, and position.
Definition at line 41 of file fps_view_controller.h.
rviz::FPSViewController::FPSViewController | ( | ) |
Definition at line 50 of file fps_view_controller.cpp.
|
overridedefault |
|
protectedvirtualslot |
Definition at line 237 of file fps_view_controller.cpp.
|
protectedvirtualslot |
Definition at line 206 of file fps_view_controller.cpp.
|
protected |
yield camera orientation for given Euler angles
Definition at line 160 of file fps_view_controller.cpp.
|
overridevirtual |
Reimplemented from rviz::ViewController.
Reimplemented in rviz::FrameViewController.
Definition at line 105 of file fps_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.
Definition at line 98 of file fps_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().
This base class implementation does nothing.
Reimplemented from rviz::ViewController.
Definition at line 89 of file fps_view_controller.cpp.
void rviz::FPSViewController::move | ( | float | x, |
float | y, | ||
float | z | ||
) |
Definition at line 200 of file fps_view_controller.cpp.
|
overridevirtual |
Do subclass-specific initialization. Called by ViewController::initialize after context_ and camera_ are set. Default implementation does nothing.
Reimplemented from rviz::ViewController.
Reimplemented in rviz::FrameViewController.
Definition at line 73 of file fps_view_controller.cpp.
|
overrideprotectedvirtual |
Override to implement the change in properties which nullifies the change in target frame.
Reimplemented from rviz::FramePositionTrackingViewController.
Reimplemented in rviz::FrameViewController.
Definition at line 194 of file fps_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.
Reimplemented in rviz::FrameViewController.
Definition at line 80 of file fps_view_controller.cpp.
|
protected |
zero roll angle
Definition at line 186 of file fps_view_controller.cpp.
void rviz::FPSViewController::rotate | ( | float | yaw, |
float | pitch, | ||
float | roll | ||
) |
Definition at line 229 of file fps_view_controller.cpp.
|
protected |
set yaw, pitch, roll, position properties from camera
Definition at line 169 of file fps_view_controller.cpp.
|
protected |
The camera's pitch (rotation around the y-axis), in radians.
Definition at line 72 of file fps_view_controller.h.
|
protected |
The camera's position.
Definition at line 74 of file fps_view_controller.h.
|
staticprotected |
Definition at line 69 of file fps_view_controller.h.
|
protected |
The camera's roll (rotation around the x-axis), in radians.
Definition at line 73 of file fps_view_controller.h.
|
protected |
The camera's yaw (rotation around the z-axis), in radians.
Definition at line 71 of file fps_view_controller.h.