Use the ArcBallController method to control the camera view point in a scene.
More...
#include <ArcBallController.hpp>
Inherits CameraController.
|
|
| ArcBallController (double NewWidth, double NewHeight) |
| | constructor
|
| |
|
| ArcBallController (double NewWidth, double NewHeight, rw::graphics::SceneCamera::Ptr cam) |
| | constructor
|
| |
|
virtual | ~ArcBallController () |
| | destructor
|
| |
| void | click (float x, float y) |
| | register a mouse click event. The coordinates must be inside the specified bounds. More...
|
| |
| rw::math::Quaternion< double > | drag (float x, float y) |
| | Calculates the rotation of the object/scene based on the mouse being dragged to the position (x,y). More...
|
| |
| void | draw () |
| | draw the camera control. More...
|
| |
| void | setBounds (double NewWidth, double NewHeight) |
| | set the bounds that define the area where the 2d point is valid. The bound is defined in a plane with [0,width] and [0,height]. Where (0,0) is the upper left corner of the plane. More...
|
| |
| virtual void | handleEvent (QEvent *event) |
| | event handler, typically mouse and keyboard More...
|
| |
| virtual rw::math::Transform3D | getTransform () const |
| | get the current world to camera transformation More...
|
| |
| void | setTransform (const rw::math::Transform3D<> &t3d) |
| | set world to camera transformation More...
|
| |
| void | setCenter (const rw::math::Vector3D<> ¢er, const rw::math::Vector2D<> &screenCenter) |
| | update the center of rotation and screen center More...
|
| |
| rw::math::Vector3D | getCenter () |
| | get the current pivot point in world coordinates More...
|
| |
| void | zoom (double amount) |
| | Zoom by amount specified by amount. More...
|
| |
| void | autoZoom (rw::core::Ptr< rw::models::WorkCell > workcell, rw::core::Ptr< const rw::kinematics::State > state, double fovy, double aspectRatio) |
| | Zooms the camera to fit all devices into the camera view. More...
|
| |
| void | setZoomTarget (rw::math::Vector3D< double > target, bool enable=true) |
| | set the 3D coordinate that should be zoomed towards. More...
|
| |
| void | setPanTarget (rw::math::Vector3D< double > target, bool enable=true) |
| | set the 3D coordinate that should be moved. More...
|
| |
| rw::math::Vector3D | getPanTarget () |
| | get the 3D coordinate that should be moved. More...
|
| |
| void | setDrawable (rw::graphics::DrawableNode::Ptr obj) |
| | add a drawable to the camera controller More...
|
| |
|
void | zoomScale (double scale=1) |
| |
|
virtual | ~CameraController () |
| | destructor
|
| |
Use the ArcBallController method to control the camera view point in a scene.
The ArcBallController method defines a way to map a 2d position into a 3d position on some sphere. This means that the rotation is defined by dragging a point on a sphere around its center.
◆ autoZoom()
Zooms the camera to fit all devices into the camera view.
Useful when working with robots smaller or larger than standard. Calling this method moves the camera along its Z-axis.
- Parameters
-
| workcell | [in] The autozoom functions fits all frames of workcell in the viewport |
| state | [in] state with the current positions of the frames. If NULL, the default workcell state is used. |
| fovy | [in] the field of view in the vertical direction (in radians). |
| aspectRatio | [in] the aspect ratio of (width divided by height). |
Implements CameraController.
◆ click()
| void click |
( |
float |
x, |
|
|
float |
y |
|
) |
| |
register a mouse click event. The coordinates must be inside the specified bounds.
- Parameters
-
| x | [in] x-coodinate |
| y | [in] y-coodinate |
◆ drag()
Calculates the rotation of the object/scene based on the mouse being dragged to the position (x,y).
- Parameters
-
| x | [in] the x-coordinate of the current mouse position |
| y | [in] the y-coordinate of the current mouse position |
- Returns
- the rotation that should be applied to the object/scene
◆ draw()
◆ getCenter()
get the current pivot point in world coordinates
- Returns
- current pivot point
Implements CameraController.
◆ getPanTarget()
get the 3D coordinate that should be moved.
- Returns
- the target position to move.
Reimplemented from CameraController.
◆ getTransform()
get the current world to camera transformation
- Returns
- world to camera transformation
Implements CameraController.
◆ handleEvent()
| virtual void handleEvent |
( |
QEvent * |
event | ) |
|
|
virtual |
event handler, typically mouse and keyboard
- Parameters
-
| event | [in] the specific event |
Implements CameraController.
◆ mapToSphere()
maps a 2d position (x,y) into a position on a 3D sphere which is centered around _centerPt.
- Parameters
-
◆ pan()
| void pan |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
|
protected |
move the camera in 2D relative to the scene
- Parameters
-
| x | [in] current mouse position in x-axis |
| y | [in] current mouse position in y-axis |
◆ setBounds()
| void setBounds |
( |
double |
NewWidth, |
|
|
double |
NewHeight |
|
) |
| |
|
virtual |
set the bounds that define the area where the 2d point is valid. The bound is defined in a plane with [0,width] and [0,height]. Where (0,0) is the upper left corner of the plane.
- Parameters
-
| NewWidth | [in] width |
| NewHeight | [in] height |
Implements CameraController.
◆ setCenter()
update the center of rotation and screen center
- Parameters
-
| center | [in] center of rotation in world coordinates |
| screenCenter | [in] center of rotation in screen coordinates |
Implements CameraController.
◆ setDrawable()
add a drawable to the camera controller
- Parameters
-
| obj | [in] a drawable to be controled by the camera controller |
Reimplemented from CameraController.
◆ setPanTarget()
set the 3D coordinate that should be moved.
- Parameters
-
| target | [in] the target position to move. |
| enable | [in] enable or disable pan with pantarget. |
Reimplemented from CameraController.
◆ setTransform()
set world to camera transformation
- Parameters
-
| t3d | [in] world to camera transformation |
Implements CameraController.
◆ setZoomTarget()
set the 3D coordinate that should be zoomed towards.
- Parameters
-
| target | [in] the target position to zoom towards. |
| enable | [in] enable or disable zoom with zoomtarget. |
Reimplemented from CameraController.
◆ unproject()
project a image position into 3D space using pinhole model
- Parameters
-
| x | [in] the x coordinate in the image |
| y | [in] the y coordinate in the image |
| z | [in] the z coordinate of the world |
- Returns
- the projected 3D position
◆ zoom()
| void zoom |
( |
double |
amount | ) |
|
|
virtual |
Zoom by amount specified by amount.
Calling this method moves the camera along its Z-axis.
- Parameters
-
| amount | [in] Meters to zoom the camera |
Implements CameraController.
The documentation for this class was generated from the following file: