Hello everyone, Some time ago I posted the help request you can see bellow, but so far did not receive any response to my email address. I don't know if no one knew a solution to my problem (or someone is still working on it), if I posted my help request in a inadequate way or if something went wrong on our email server. (Because I cannot find my post on OpenSGs sourceforge users-list search page).
So if the form of my help request was inadequate please tell me, so I can post in more appropriate way (maybe shorten my post for ex.). If you have allready answered my email I would kindly like to ask you to resend your answer. (Apologies for the circucumstances and thanks for your help!). Again thanks to anyone, who might have a hint or a helping hand. Best regards, Christoph [EMAIL PROTECTED] -----Original Message----- From: Hürzeler Christoph Sent: Mon 1/22/2007 12:48 PM To: [email protected] Subject: Problems with libOSGWindowQT4 and std::logic_error Hello everyone, I've been working with OpenSG for some months now, building a VR-tool for a microassembly station during my diploma thesis here at the "Swiss Federal Institute of Technology" in Zürich. So far I've been pretty satisfied with OpenSG but I recently ran into some problems, which I can't seem to manage myself anymore. Therefore any hint or help would be deeply appreciated. (Especially since I have to finish the project in three weeks...). I am using one of the recent OpenSG cvs builds (from last week). In my project I use a GUI created with Qt and Qt-Designer Version 4.2.1. Furthermore I have a plugin widget for the designer which creates a graphical widget to render OpenSG content into the GUI. (SGWidgetPlugin returns "class SGWidgetOSG : public OSG::OSGQGLWidget" to designer ). -> In SGWidgetOSG I use my own helper classes (which themselfs use OpenSG) to perform setting up the scenegraph, picking, navigating and so forth... (because the OSG::SimpleSceneManager is a little bit to restrictive for me). I managed to get my plugin showing up in designer, so it can be used just like any other widget in designer. (Designer even shows the OSG::Viewport with a gradient background I setup in my widget). But now I have 2 probs: 1.) ################################################################### The problem I have now when starting my test-applications is that I get a >terminate called after throwing an instance of 'std::logic_error' > what(): basic_string::_S_construct NULL not valid >Aborted error as soon as I'm calling "/*OSGQT(4)WindowPtr*/_window->init();" I'm really not sure if this error has anything to do with my widgets because I get the same error with another one of my VR-applications where I'm testing a collision detection library. There I get the same error when calling "OSG::traverse( node, OSG::osgTypedFunctionFunctor1CPtrRef<OSG::Action::ResultE, OSG::NodePtr>( &StaticCollector::enter ), OSG::osgTypedFunctionFunctor2CPtrRef<OSG::Action::ResultE, OSG::NodePtr>( &StaticCollector::leave ) );" Both my widget and the scenegraph traversing worked fine when I was still using libOSGWindowQT instead of libOSGWindowQT4. As far as I know this comes form something like "std::string s(NULL);" What I do before calling either function is: In my GUI-Application before "OSG::QT(4)Window::init()" int main( int argc, char ** argv ) { SGWidgetOSG::initOSG(argc, argv); //osgInit( argc, argv ); QApplication app( argc, argv ); SGDockingWidget sgdw; // comes form SGDockingWidget.ui which uses SGWidgetOSGs // app.setMainWidget(& sgdw); sgdw.show(); /* within show() SGWidgetOSG::initializeGL() is called where I setup my OSG::Viewport, navigators, cameras and lights (nothing's wrong here, because it worked perfectly with libOSGWindowQT) and after that _window->init() is called -> crash ... */ return app.exec(); } In my collision detection testapplication before "OSG::traverse()": int main( int argc, char ** argv ) { osgInit( argc, argv ); QApplication( argc, argv ) app; QMainWindow win; //QGLWidget qgl(&win);// crash also with the QGLWidget win.show(); OSG::NodePtr node = OSG::makeCoredNode<OSG::Group>(); OSG::beginEditCP( node ); node->addChild( OSG::makeNodeFor( OSG::makeBoxGeo( 1, 1, 1, 1, 1, 1) ) ); // was also tested with complete vrml model OSG::endEditCP( node ); VRControlCenter vr_ctrl( node ); vr_ctrl.configure( "path/to/my/xml/configuration/file" ); /* One of the first things the VRControlCenter does when its configuring, is to call OSG::traverse() on the node its been constructed with to check what kinds of nodes are around in the scenegraph and on calling OSG::traverse() the std::logic_error crash appears... */ return app.exec(); } I must be doing something wrong during setup, but I have been staring to long at all my code and I just can't figure it out. 2.) ################################################################### I then also tried to put some debugging messages into OSGQT4Window.cpp "WindowQT::init()" and tried to recompile, but I always get the same compile errors when compiling libOSGWindowQT4. I use: g++ -v = gcc version 4.2.1 20061115 (prerelease) (Debian 4.1.1-21) moc -v = Qt Meta Object Compiler version 59 (Qt 4.2.1) OpenSG cvs version of today (22. Jan. 2007). >./configure --enable-glut --enable-tif --enable-png --enable-jpg --enable-qt4 >--with-qt4=/usr >--with-add-incdir=/usr/include/qt4/Qt:/usr/include/qt4/QtCore:/usr/include/qt4/QtGui:/usr/include/qt4/QtNetwork:/usr/include/qt4/QtOpenGL:/usr/include/qt4/Qt3Support:/usr/include/qt4/QtDBus:/usr/include/qt4/QtDesigner:/usr/include/qt4/QtSql:/usr/include/qt4/QtSvg:/usr/include/qt4/QtTest:/usr/include/qt4/QtUiTools:/usr/include/qt4/QtXml Then when trying to compile I get: >OpenSG/Source/WindowSystem/QT4/OSGWindowQT4Plugin_qt.h: 92: Error: Undefined >interface and if I add the <QDesignerExportWidget> and QDESIGNER_EXPORT and Q_EXPORT_PLUGIN2(...) stuff to OSGWindowQT4Plugin_qt.* I get: >OpenSG/Source/WindowSystem/QT4/OSGWindowQT4Plugin_qt.h: 0: Warning: No >relevant classes found. No output generated. >obj-dbg/OSGQ4SceneGraphView_qt_moc.cpp:11:2: error #error "The header file >'OSGQ4SceneGraphView_qt.h' doesn't include <QObject>" The "doesn't include <QObject>" error also appears for OSGQ4NodeTreeView, OSGQ4GLWidget, OSGQ4GLManagedWidget, OSGQ4GLManagedDesignerWidget, OSGQ4FieldEditor, OSGQ4FieldContainerView,... I got the same problems when compiling the first time, but I'm not sure any more how I finally got it to compile -> doing some magic "sudo and su" special permissions things in /tmp/OpenSG. I found something on the topic on: http://lists.trolltech.com/qt4-preview-feedback/2005-04/thread00475-0.html But I'm not sure what to make of it... Thank you very much for any help. Regards, Christoph PS: I get the same compile errors on my laptop using fedora and Qt 4.1 ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
