![]() |
http://www.sim.no http://www.coin3d.org |
The SoQtConstrainedViewer class is the superclass for viewers with constrains on the viewpoint.This abstract viewer class adds new methods to keep the camera in an upright position according to some arbitrary up-direction. The up-direction can be decided by either the application programmer (by using SoQtConstrainedViewer::setUpDirection()) or the end-user, through interaction mechanisms defined by the subclasses. More...
#include <Inventor/Qt/viewers/SoQtConstrainedViewer.h>
Public Member Functions | |
virtual SoType | getTypeId (void) const |
void | setUpDirection (const SbVec3f &dir) |
const SbVec3f & | getUpDirection (void) const |
virtual void | setCamera (SoCamera *newcam) |
virtual void | saveHomePosition (void) |
virtual void | resetToHomePosition (void) |
Static Public Member Functions | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
Protected Member Functions | |
SoQtConstrainedViewer (QWidget *parent, const char *const name, SbBool embed, SoQtFullViewer::BuildFlag flag, SoQtViewer::Type type, SbBool build) | |
~SoQtConstrainedViewer () | |
virtual void | tiltCamera (float delta) |
virtual void | bottomWheelMotion (float value) |
virtual void | leftWheelMotion (float value) |
virtual void | changeCameraValues (SoCamera *camera) |
void | findUpDirection (SbVec2s mouselocation) |
void | checkForCameraUpConstrain (void) |
The SoQtConstrainedViewer class is the superclass for viewers with constrains on the viewpoint.
This abstract viewer class adds new methods to keep the camera in an upright position according to some arbitrary up-direction. The up-direction can be decided by either the application programmer (by using SoQtConstrainedViewer::setUpDirection()) or the end-user, through interaction mechanisms defined by the subclasses.
SoQtConstrainedViewer::SoQtConstrainedViewer | ( | QWidget * | parent, | |
const char *const | name, | |||
SbBool | embed, | |||
SoQtFullViewer::BuildFlag | flag, | |||
SoQtViewer::Type | type, | |||
SbBool | build | |||
) | [protected] |
SoQtConstrainedViewer::~SoQtConstrainedViewer | ( | ) | [protected] |
Virtual destructor.
static void SoQtConstrainedViewer::initClass | ( | void | ) | [static] |
Sets up initialization for data common to all instances of this class, submitting necessary information to the internal SoQt type system.
Reimplemented from SoQtFullViewer.
Reimplemented in SoQtFlyViewer.
static SoType SoQtConstrainedViewer::getClassTypeId | ( | void | ) | [static] |
This static method returns the SoType object associated with objects of this class.
Reimplemented from SoQtFullViewer.
Reimplemented in SoQtFlyViewer.
virtual SoType SoQtConstrainedViewer::getTypeId | ( | void | ) | const [virtual] |
Returns the type identification of an object derived from a class inheriting SoQtObject. This is used for run-time type checking and "downward" casting.
Usage example:
void foo(SoQtViewer * comp) { if (comp->getTypeId() == SoQtExaminerViewer::getClassTypeId()) { // safe downward cast, knows the type SoQtExaminerViewer * exviewer = (SoQtExaminerViewer *)comp; } else if (comp->getTypeId().isOfType(SoQtFlyViewer::getClassTypeId())) { // safe downward cast, knows the type SoQtFlyViewer * flyviewer = (SoQtFlyViewer *)comp; // then something else } }
Reimplemented from SoQtFullViewer.
Reimplemented in SoQtFlyViewer.
void SoQtConstrainedViewer::setUpDirection | ( | const SbVec3f & | dir | ) |
Set up-direction vector for the camera viewpoint.
References checkForCameraUpConstrain(), and SoQtViewer::getCamera().
Referenced by findUpDirection().
const SbVec3f & SoQtConstrainedViewer::getUpDirection | ( | void | ) | const |
Return up-direction vector for the camera viewpoint.
Referenced by tiltCamera().
void SoQtConstrainedViewer::setCamera | ( | SoCamera * | cam | ) | [virtual] |
Set the camera we want the viewer to manipulate when interacting with the viewer controls.
The camera passed in as an argument to this method must already be part of the viewer's scenegraph. You do not inject viewpoint cameras to the viewer with this method.
You should rather insert a camera into the scene graph first (if necessary, often one will be present already), then register it as the camera used by the viewer controls with this method.
If the application code doesn't explicitly set up a camera through this method, the viewer will automatically scan through the scenegraph to find a camera to use. If no camera is available in the scenegraph at all, it will set up it's own camera.
Reimplemented from SoQtViewer.
Reimplemented in SoQtFlyViewer.
References checkForCameraUpConstrain(), and SoQtViewer::setCamera().
Referenced by SoQtFlyViewer::setCamera().
void SoQtConstrainedViewer::saveHomePosition | ( | void | ) | [virtual] |
Store the current camera settings for later retrieval with resetToHomePosition().
Reimplemented from SoQtViewer.
References SoQtViewer::saveHomePosition().
void SoQtConstrainedViewer::resetToHomePosition | ( | void | ) | [virtual] |
Restore the saved camera settings.
Reimplemented from SoQtViewer.
Reimplemented in SoQtFlyViewer.
References SoQtViewer::resetToHomePosition().
Referenced by SoQtFlyViewer::resetToHomePosition().
void SoQtConstrainedViewer::tiltCamera | ( | float | delta | ) | [protected, virtual] |
This method tilts the camera delta degrees closer to the up direction.
References SoQtViewer::getCamera(), and getUpDirection().
Referenced by leftWheelMotion().
void SoQtConstrainedViewer::bottomWheelMotion | ( | float | value | ) | [protected, virtual] |
Called repeatedly as the user drags the thumbwheel in the bottom frame. Override this method in subclassed viewers to provide your own functionality on the thumbwheel.
Reimplemented from SoQtFullViewer.
References SoQtFullViewer::bottomWheelMotion(), and SoQtFullViewer::getBottomWheelValue().
void SoQtConstrainedViewer::leftWheelMotion | ( | float | value | ) | [protected, virtual] |
Called repeatedly as the user drags the thumbwheel in the left frame. Override this method in subclassed viewers to provide your own functionality on the thumbwheel.
Reimplemented from SoQtFullViewer.
References SoQtFullViewer::getLeftWheelValue(), SoQtFullViewer::leftWheelMotion(), and tiltCamera().
void SoQtConstrainedViewer::changeCameraValues | ( | SoCamera * | camera | ) | [protected, virtual] |
Copies the settings of camera into our current camera. Cameras must be of the same class type.
Reimplemented from SoQtViewer.
References SoQtViewer::changeCameraValues(), and checkForCameraUpConstrain().
void SoQtConstrainedViewer::findUpDirection | ( | SbVec2s | mouselocation | ) | [protected] |
Executes a raypick at the given mousepointer location and sets the viewer's camera up-vector direction to the normal vector of the picked geometry.
References SoQtRenderArea::getSceneManager(), SoQtRenderArea::getViewportRegion(), and setUpDirection().
void SoQtConstrainedViewer::checkForCameraUpConstrain | ( | void | ) | [protected] |
If necessary, "tilts" the camera sideways so the up-direction is heeded.
References SoQtViewer::getCamera().
Referenced by changeCameraValues(), setCamera(), and setUpDirection().
Copyright © 1998-2005 by Systems in Motion AS. All rights reserved.
Generated on Fri Aug 27 2010 06:24:32 for SoQt by Doxygen. 1.7.1