VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Signals | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Slots | Protected Member Functions | Protected Attributes
makVrv::DtOsgAdapterQtWidget Class Reference

DtOsgAdapterQtWidget provides the mechanism for embedding an OSG context into a Qt widget.

Inheritance diagram for makVrv::DtOsgAdapterQtWidget:
Inheritance graph
[legend]

Signals

void devicePixelRatioChanged ()
 

Public Member Functions

 DtOsgAdapterQtWidget (DtDe &de, osg::GraphicsContext::Traits *contextTraits, const QGLFormat &format, QOpenGLContext *openGLContext, QWidget *parent, Qt::WindowFlags windowFlags)
 
virtual ~DtOsgAdapterQtWidget ()
 
osgViewer::GraphicsWindow * graphicsWindow ()
 
void setView (DtWindow *window)
 
DtWindowview () const
 
int widgetToNativeCoordinate (int widgetValue)
 
int nativeToWidgetCoordinate (int nativeValue)
 
virtual
osgGA::GUIEventAdapter::KeySymbol 
osgKeyFromQtKeyEvent (QKeyEvent *event)
 
virtual void processKeyPressEvent (QKeyEvent *keyEvent)
 
virtual void processKeyReleaseEvent (QKeyEvent *keyEvent)
 
virtual bool processTouchEvent (QTouchEvent *touchEvent)
 
virtual void mouseMoveEvent (QMouseEvent *event)
 
virtual void focusInEvent (QFocusEvent *event)
 
virtual void focusOutEvent (QFocusEvent *event)
 
virtual bool event (QEvent *event)
 
virtual QSize sizeHint () const
 
virtual void slot_onRightClickTerrainMenuRequest (double mouseX, double mouseY, DtChannel *channel)
 
virtual void slot_onRightClickSelectionMenuRequest (double mouseX, double mouseY, DtChannel *channel)
 
virtual void slot_onWindowConfigurationModified (const DtWindowConfiguration &newWindowConfig)
 

Static Public Member Functions

static QGLFormat createFormatFromTraits (const osg::GraphicsContext::Traits *contextTraits)
 

Public Attributes

boost::signalslib::signal
< void(DtOsgAdapterQtWidget *)> 
signal_mouseEnter
 
boost::signalslib::signal
< void(DtOsgAdapterQtWidget *)> 
signal_mouseExit
 

Protected Slots

void emit_signal_pixelRatioChanged ()
 

Protected Member Functions

void init ()
 
virtual bool channelInThisWidget (const DtChannel &channel)
 
virtual void resizeGL (int width, int height) override
 
virtual void paintGL () override
 
virtual void paintEvent (QPaintEvent *e) override
 
virtual void resizeEvent (QResizeEvent *resizeEvent) override
 
virtual void keyPressEvent (QKeyEvent *)
 
virtual void keyReleaseEvent (QKeyEvent *)
 
virtual void mousePressEvent (QMouseEvent *event)
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 
virtual void enterEvent (QEvent *event)
 
virtual void leaveEvent (QEvent *event)
 
int qtButtonToOsgButton (QMouseEvent *event)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 
virtual void wheelEvent (QWheelEvent *)
 
virtual void closeEvent (QCloseEvent *)
 
virtual void slot_ctrlEnterPressed (const DtChannel &channel)
 
virtual void getTouchPointPositions (const QTouchEvent &touchEvent, osg::Vec2 &p0, osg::Vec2 &p1)
 
virtual void startOsgTouch (const osg::Vec2 &p0, const osg::Vec2 &p1)
 
virtual void continueOsgTouch (const osg::Vec2 &p0, const osg::Vec2 &p1)
 
virtual void endOsgTouch (const osg::Vec2 &p0)
 
virtual void cleanupOpenGlResources (void)
 

Protected Attributes

osg::ref_ptr
< QGLWidgetAsOsgContext
myEmbeddedWindow
 
DtDemyDe
 
DtWindowmyWindow
 
DtOsgAdapterQtWidgetLogicmyLogic
 
QOpenGLContext * myOpenGLContext
 
bool myLeftPressed
 
bool myMiddlePressed
 
bool myRightPressed
 
bool myIsPinching
 
int myOldDevicePixelRatio
 
DtSignalConnectionManager myConnections
 

Constructor & Destructor Documentation

makVrv::DtOsgAdapterQtWidget::DtOsgAdapterQtWidget ( DtDe de,
osg::GraphicsContext::Traits *  contextTraits,
const QGLFormat &  format,
QOpenGLContext *  openGLContext,
QWidget *  parent,
Qt::WindowFlags  windowFlags 
)

CTOR.

virtual makVrv::DtOsgAdapterQtWidget::~DtOsgAdapterQtWidget ( )
virtual

DTOR.

Member Function Documentation

osgViewer::GraphicsWindow* makVrv::DtOsgAdapterQtWidget::graphicsWindow ( )

Get the Graphics Window.

void makVrv::DtOsgAdapterQtWidget::setView ( DtWindow window)

Set the osg window to forward off events such as resize.

DtWindow* makVrv::DtOsgAdapterQtWidget::view ( ) const
int makVrv::DtOsgAdapterQtWidget::widgetToNativeCoordinate ( int  widgetValue)

Converts a point in possibly scaled widget coordinates to native coordinates to support Qt high dpi scaling.

Returns
widgetValue multiplied by devicePixelRatio. On unscaled content devicePixelRatio is 1.
int makVrv::DtOsgAdapterQtWidget::nativeToWidgetCoordinate ( int  nativeValue)

Converts a point in native coordinates to possibly scaled widget coordinates to support Qt high dpi scaling.

Returns
widgetValue multiplied by devicePixelRatio. On unscaled content devicePixelRatio is 1.
virtual osgGA::GUIEventAdapter::KeySymbol makVrv::DtOsgAdapterQtWidget::osgKeyFromQtKeyEvent ( QKeyEvent *  event)
virtual

maps keys coming from Qt to osg::GuiEventAdapter::KeySymbols

virtual void makVrv::DtOsgAdapterQtWidget::processKeyPressEvent ( QKeyEvent *  keyEvent)
virtual

process a key press event that came from Qt directly or from the key adapter

virtual void makVrv::DtOsgAdapterQtWidget::processKeyReleaseEvent ( QKeyEvent *  keyEvent)
virtual

process a key release event that came from Qt directly or from the key adapter

virtual bool makVrv::DtOsgAdapterQtWidget::processTouchEvent ( QTouchEvent *  touchEvent)
virtual

Process a touch event. Touch events with two touchpoints are treated as pinches; others are ignored (exception - touch end events always have one touchpoint, even if its the end of a multitouch event; hence it is processed here IF we are current within an identified pinch gesture)

virtual void makVrv::DtOsgAdapterQtWidget::mouseMoveEvent ( QMouseEvent *  event)
virtual
virtual void makVrv::DtOsgAdapterQtWidget::focusInEvent ( QFocusEvent *  event)
virtual
virtual void makVrv::DtOsgAdapterQtWidget::focusOutEvent ( QFocusEvent *  event)
virtual
virtual bool makVrv::DtOsgAdapterQtWidget::event ( QEvent event)
virtual
static QGLFormat makVrv::DtOsgAdapterQtWidget::createFormatFromTraits ( const osg::GraphicsContext::Traits *  contextTraits)
static

Helper function to create a QFormat from an osg context traits.

virtual QSize makVrv::DtOsgAdapterQtWidget::sizeHint ( ) const
virtual
virtual void makVrv::DtOsgAdapterQtWidget::slot_onRightClickTerrainMenuRequest ( double  mouseX,
double  mouseY,
DtChannel channel 
)
virtual

called by signal requesting a terrain-specific popup menu

virtual void makVrv::DtOsgAdapterQtWidget::slot_onRightClickSelectionMenuRequest ( double  mouseX,
double  mouseY,
DtChannel channel 
)
virtual

called by signal requesting a selection-specific popup menu

virtual void makVrv::DtOsgAdapterQtWidget::slot_onWindowConfigurationModified ( const DtWindowConfiguration newWindowConfig)
virtual

called by signal indicating a window configuration change

void makVrv::DtOsgAdapterQtWidget::devicePixelRatioChanged ( )
signal

This signal is emitted when the high dpi scaling factor changes.

void makVrv::DtOsgAdapterQtWidget::init ( )
protected
virtual bool makVrv::DtOsgAdapterQtWidget::channelInThisWidget ( const DtChannel channel)
protectedvirtual

Find out if our window (myView) owns a channel. Used when processing ctrlEnter signals.

virtual void makVrv::DtOsgAdapterQtWidget::resizeGL ( int  width,
int  height 
)
overrideprotectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::paintGL ( )
overrideprotectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::paintEvent ( QPaintEvent *  e)
overrideprotectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::resizeEvent ( QResizeEvent *  resizeEvent)
overrideprotectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::keyPressEvent ( QKeyEvent *  )
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::keyReleaseEvent ( QKeyEvent *  )
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::mousePressEvent ( QMouseEvent *  event)
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::mouseReleaseEvent ( QMouseEvent *  event)
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::enterEvent ( QEvent event)
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::leaveEvent ( QEvent event)
protectedvirtual
int makVrv::DtOsgAdapterQtWidget::qtButtonToOsgButton ( QMouseEvent *  event)
protected
virtual void makVrv::DtOsgAdapterQtWidget::mouseDoubleClickEvent ( QMouseEvent *  event)
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::wheelEvent ( QWheelEvent *  )
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::closeEvent ( QCloseEvent *  )
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::slot_ctrlEnterPressed ( const DtChannel channel)
protectedvirtual
virtual void makVrv::DtOsgAdapterQtWidget::getTouchPointPositions ( const QTouchEvent &  touchEvent,
osg::Vec2 &  p0,
osg::Vec2 &  p1 
)
protectedvirtual

Get the positions of the 2 touch points in a touch event; if the touch event has no touch points, p0 and p1 will be untouched. If the touch event has only one touch point, p0 will be set and p1 will be untouched.

virtual void makVrv::DtOsgAdapterQtWidget::startOsgTouch ( const osg::Vec2 &  p0,
const osg::Vec2 &  p1 
)
protectedvirtual

This creates an osgGA GUI Adapter touch event with the Began phase and the points provided.

virtual void makVrv::DtOsgAdapterQtWidget::continueOsgTouch ( const osg::Vec2 &  p0,
const osg::Vec2 &  p1 
)
protectedvirtual

This creates an osgGA GUI Adapter touch event with the Moved phase and the points provided.

virtual void makVrv::DtOsgAdapterQtWidget::endOsgTouch ( const osg::Vec2 &  p0)
protectedvirtual

This creates an osgGA GUI Adapter touch event with the Ended phase and the points provided.

virtual void makVrv::DtOsgAdapterQtWidget::cleanupOpenGlResources ( void  )
protectedvirtual

This is called from the destructor -It saves the incoming OpenGL context (it may or may not be this widget's context) -It makes the context for this widget current. -It then calls DtOsgToGlContextTracker::instance(myDe).contextAboutToBeDestroyed -Then, the incoming OpenGL context is resotred.

void makVrv::DtOsgAdapterQtWidget::emit_signal_pixelRatioChanged ( )
protectedslot

Simple wrapper to emit boost pixelRatioChanged signal from the Qt signal.

Member Data Documentation

boost::signalslib::signal<void (DtOsgAdapterQtWidget*)> makVrv::DtOsgAdapterQtWidget::signal_mouseEnter
boost::signalslib::signal<void (DtOsgAdapterQtWidget*)> makVrv::DtOsgAdapterQtWidget::signal_mouseExit
osg::ref_ptr<QGLWidgetAsOsgContext> makVrv::DtOsgAdapterQtWidget::myEmbeddedWindow
protected
DtDe& makVrv::DtOsgAdapterQtWidget::myDe
protected
DtWindow* makVrv::DtOsgAdapterQtWidget::myWindow
protected
DtOsgAdapterQtWidgetLogic* makVrv::DtOsgAdapterQtWidget::myLogic
protected
QOpenGLContext* makVrv::DtOsgAdapterQtWidget::myOpenGLContext
protected
bool makVrv::DtOsgAdapterQtWidget::myLeftPressed
protected
bool makVrv::DtOsgAdapterQtWidget::myMiddlePressed
protected
bool makVrv::DtOsgAdapterQtWidget::myRightPressed
protected
bool makVrv::DtOsgAdapterQtWidget::myIsPinching
protected
int makVrv::DtOsgAdapterQtWidget::myOldDevicePixelRatio
protected
DtSignalConnectionManager makVrv::DtOsgAdapterQtWidget::myConnections
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)