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: