Archived Change Log
This is the changeLog for libQGLViewer version 1.x. See also the changeLog for
versions 2.x.
April 28th, 2005 - 1.3.9-6
New features
 - A new Camera::zClippingCoef()method to define z clipping planes positions.
- A new mouseGrabberChangedsignal.
- Some hacks allow a compilation with .NET and the free
 Qt 2.3 version (thanks Lionel).
Changes in the API
 - Camera::pixelGLRatio()made- const
- QGLViewer::drawGridand- drawAxis()made virtual.
Bug fixes or improvements
 - Help window improved: new About button and custom bindings descriptions separated.
- Problem with camera keyFrameInterpolator domElement fixed.
March 2nd, 2005 - 1.3.9-5
New features
 - A new setStateFileNamemethod (defaultstateFileNameis.qglviewer.xml, as before).
- A new helpWidgetmethod.
- A Debian package of the library is now available (thanks to Artur Czechowski).
Changes in the API
 - saveToFileand- restoreFromFilewere renamed- saveStateToFileand- restoreStateFromFile.
 They no longer take file names as parameters, use- stateFileNameinstead.
Bug fixes or improvements
 - Version number saved in state files.
February 9th, 2005 - 1.3.9-4
New features
 - restoreFromFile()now returns a- boolthat indicates restoration success.
- A message is briefly displayed when one changes the camera displacement mode (using the Space key).
Changes in the API
 - Enabled text status (toggled using the ? key) no longer saved in .qglviewer.xmlfile.
Bug fixes or improvements
  - Only the last saved camera position (or path) was restored from file (bug finder Xavier).
- Error message in restoreFromFile()with several viewers finally removed (bug finder Xavier).
- Proper include file (with QGLViewer/prefix) in classes' documentation.
January 13th, 2005 - 1.3.9-3
New features
Changes in the API
 - setMouseBindingDescriptionparameters reordered.
- startScreenCoordinatesSystemz mapping now ranges in [0.0, 1.0[ (was [1.0, -1.0]).
- Frame alignment (left and right buttons double click) are now filtered by constraints.
- Double click events are disabled in fly camera mode.
- Vec::projectOnAxis()no longer requires a normalized axis.
Bug fixes or improvements
  - Vecvalues stored in a union to ensure proper memory allocation (bug finder Olivier).
- Problem with vectorial rendering using several GL contexts fixed (bug finder Cyril).
- Problem with displayMessage()that regularly calledupdateGLfixed (bug finder Stéphane).
- No more error message when no .qglviewer.xmlfile is found in multi-viewer configuration.
- Slightly modified screenCoordSystem example.
- Warning message when quickly deleting several times the same camera paths removed.
- Double click properly handled by ManipulatedFramewhen used asMouseGrabber.
- Mouse events binded to no action are no longer displayed in mouse help tab.
- Frame::setFromMatrix()now expects an OpenGL format matrix.
November 23rd, 2004 - 1.3.9-2
New features
 - New QGLViewer::sizeHint()method returns preferred viewer size (600x400).
Bug fixes or improvements
  - Infinite loop when displayMessage()is called indraw()fixed.
- EPSInterface.uiversion downgraded to 3.0.
- Better mouseGrabber example.
- Rounding problems in Quaternion(from, to)method fixed.
- Viewers share their OpenGL contexts in the multiView example.
November 17th, 2004 - 1.3.9-1
New features
 - A designer plugin can be installed to ease user interfaces creation. Thanks Glen.
- New setSnapshotQuality()method to tune snapshots' quality (and hence size).
- New displayMessage()method, useful to give feedback to the user.
- New QGLViewerconstructor, that enables Open GL context sharing between several viewers (requires Qt > 3.2).
- New saveSnapshot()method, with a filename as parameter.
- New openSnapshotFormatDialog()method to select snapshot format using a popup dialog.
- New drawFinishedsignal, that can be connected tosaveSnapshot()to create movies.
- New firstTime(), lastTime()andduration()method inKeyFrameInterpolator.
- New aboutQGLViewer()method displays libQGLViewer version and info.
- New Camera::setViewDirection()method.
- Several new examples:
 
  - multiSelect illustrates multi-objects selection and features an area selection.
- A contribs page describes so-called "contribution" more complex examples.
- eventRecorder enables scenario recording and replay for movie creation.
- backgroundImage displays a static backgroundImage in your viewer. Thanks Sylvain.
- thumbnail is a dual display illustration. Thanks Sylvain.
 
- SpinningFrame, ManipulatedFrameand- ManipulatedCameraFramehave copy constructors and = operators.
- Vecand- Quaternionclasses have a convenient explicit constructor from a- QDomElement.
- Full XML syntax checking in initFromDOMElement()functions.
Changes in the API
 - New cleaned domElement()XML syntax. Incompatibilities will result in warnings at first start (or delete your old.qglviewer.xml).
- foregroundColor()and- backgroundColor()use- QColorinstead of- Vec. Attention, range is 0-255 instead of 0.0-1.0
- setSelectRegionSize()replaced by- setSelectRegionWidth()and- setSelectRegionHeight().
- Spurious foregroundColor()andbackgroundColor()methods removed.
- The EXIT KeyboardActionwas renamedEXIT_VIEWERbecause of potential name conflict.
- Vec::unit()made- const.
Bug fixes or improvements
 - Adding or deleting a camera keyframe shortly displays a feedback message.
- Default snapshot image quality was increased to 95 (see setSnapshotQuality()).
- Camera holds its projection matrix, which makes projectedCoordinatesOf()faster and more versatile.
- Crash with anti-aliased font with nVidia cards fixed (once again, but now for good).
- Nicer help window, with colored lines and a header.
- KeyFrameInterpolatordocumentation mostly rewritten.
- cwFilescustom widget directory removed and replaced by a- qglviewer.cwfile.
- Default snapshotFormat()set to the first one available (instead of JPEG).
- mouseTrackingstate no longer saved in (nor restored from)- .qglviewer.xmlfile.
June 7th, 2004 - 1.3.8-3
Changes in the API
 - QAccelabandoned : user defined key bindings have the priority.
- setKeyboardAccelerator()and- setKeyDescription()take an- intas parameter instead of a- QKeySequence.
- keyboardAccelerator()logically returns an- intaccordingly.
- Frame::referenceFrame()(and related methods) are now- const.
Bug fixes or improvements
 - Subtle bug flawed mouse bindings (especially object selection).
- Compilation successfully tested on SUN and IBM AIX (thanks Benjamin).
June 14th, 2004 - 1.3.8-2
New features
Bug fixes or improvements
 - Patches for compilation on HP UX architecture (thanks Benjamin).
June 9th, 2004 - 1.3.8-1
New features
 - A new setKeyDescription()method to customize the help dialog.
- A new setMouseBindingDescription()method to customize the help dialog.
- Camera::projectedCoordinatesOf()and similar methods have an additional optional- Frameparameter.
Changes in the API
 - ShortcutActionenum renamed- KeyboardAction.
- New MOVE_CAMERAandFLYSPEEDvalues added to theKeyboardActionenum, see keyboard page.
- setShortcutKey()and- setShortcutStateKey()replaced by- setKeyboardAccelerator().
- QGLViewer::shortcutBindingsString()renamed- keyboardString().
- QGLViewer::mouseBindingsString()renamed- mouseString().
- SpinningFrame::updateFrame()renamed- spin().
- Several functions made const.
- QGLViewer::rootWidget()removed, use- QWidget::topLevelWidget()instead.
- SCREEN_ROTATE_BOTTOMrenamed- ROLL.
- Asking for help window several times simply updates and shows instead of opening a new window.
- Scene radius and center no longer saved and restored in .qglviewer.xml.
Bug fixes or improvements
 - Web site design updated. New Unix and Windows installation pages.
- New KeyboardActionadded (MOVE_CAMERA_LEFT, INCREASE_FLYSPEED, ....
- ManipulatedFramedidn't correctly take its- rotationCenter()into account (bug finder Manu).
- SpinningFrame::rotatesAroundPoint()and- SpinningFrame::orientationIsFrozen()were not documented.
- Camera::setType()changed zoom when called twice with ORTHO (bug finder Manu).
- Shortcuthelp window tab renamed- Keyboard.
May 5th, 2004 - 1.3.7-1
New features
 - The object selection process has been simplified. Simply overload the drawWithNames() function
 and get the resulting selection id with selectedName(). See the updated select examples for a practical implementation.
- Previous select()implementations still work.
- Quaternion::inverseMatrix()and associated similar methods.
- Frame::inverse()and associated similar methods.
- Frame::inverseMatrix()and associated similar methods.
- A new quarto example.
Changes in the API
 - QGLViewer::startAnimation()has no more parameter.
Bug fixes or improvements
 - The new Qt 3.2.2 version patches the anti-aliased font display on nVidia hardware that made drawText() crash.
- The examples page is divided in three sections: basic, pedagogical and complex.
March 17th, 2004 - 1.3.6-2
New features
 - A new Vec::unit()method. Returns a unitary copy of a vector.
- Camera::setAspectRatio()function, useful when a Camera is used to create a shadow map.
Changes in the API
 - Vec::normalize()now returns the previous norm of the vector (instead of
 normalized vector).
- RPM now installs the documentation in /usr/local/share/doc/QGLViewer.
- Tarred versions of the sources now available under tar.bz2format.
- make installnow also install the documentation (default path is- /usr/local/share/doc/QGLViewer).
- New makeoptions let you install separately the includes, the library and the documentation.
- Examples autodetect if Qt is threaded or not and change link accordingly.
Bug fixes or improvements
 - The Qt 2.3 version (free win32 Qt version) works (almost) completely.
- Some typos in the documentation were fixed.
- Patch for <<operator with gcc 2.96 (bug finder Ranjith).
February 3rd, 2004 - 1.3.6-1
New features
 - The mouse sensitivity can be tuned for ManipulatedFrameandManipulatedCameraFrame.
- The viewer window previous position is properly restored back, even for embedded widgets or in full screen mode.
- The version and packaging date are added to all files, so that you know your current version.
Changes in the API
 - The spinned(), manipulated()andinterpolated()signals are no longer
 connected to all the viewersupdateGL()slots.
 If you use several viewers, you should now explicitly make these connections.
 See the signals' documentations for details.
- The ManipulatedFrame::mouseMotionenum (ROTATE, ZOOM,...) is renamedQGLViewer::mouseAction.
- drawText()made- public.
- Deprecated mouseStateKey(), Camera::mode(), ...functions removed.
Bug fixes or improvements
 - The Quaternion(from,to)constructor had a bug (bug finders Marc and Tanguy).
- MouseGrabberno longer activated when hovered while moving the camera or the- manipulatedFrame().
- Calls to updateGL()limited to the strict minimum.
- FAQ page split in two, with a new technical FAQ.
December 24th, 2003 - 1.3.5-8
New features
 - startScreenCoordinatesSystem()can set the origin in the lower or the upper left corner.
Changes in the API
 - The Camera::domElement()syntax has been changed (previous.qglviewer.xmlfiles are not compatible).
- The TriangleSetConstraintclass has been removed from the main library and moved
 in thetriSetConstraintcontrib example.
Bug fixes or improvements
 - Problem with MouseGrabber/ManipulatedFramewheel zoom fixed.
- QGLViewer::saveToFileForAllViewers()is back and called by Escape (problems with multiple viewers).
- The .qglviewer.xmlstate file is saved even when the viewer is not a top level window.
- A Qt bug with full screen has been patched so that viewers can start in full screen mode.
- When pressing a key, display is updated only when required.
November 26th, 2003 - 1.3.5-7
New features
 - A new ManipulatedFrame::ZOOM_ON_REGIONmouse action, binded to Shift + middle button.
- The associated Camera::fitScreenRegion()function.
Changes in the API
 - startScreenCoordinatesSystemno longer disable lighting nor enables blending.
November 17th, 2003 - 1.3.5-6
New features
 - A MouseGrabber::clearMouseGrabberPool()function.
Bug fixes or improvements
 - Problem with classes derived from ManipulatedFrameused asMouseGrabber(bug finder Cyril).
- Unclean old malloc removed from EPSRender code.
- libQGLViewer135.objerror message with Visual C++ removed.
November 7th, 2003 - 1.3.5-5
New features
Bug fixes or improvements
 - ManipulatedFramegrabsMouse within a distance of 10 pixels (instead of 5).
- Fly speed modification problem when using +/- fixed.
November 5th, 2003 - 1.3.5-4
New features
 - QGLViewer::setBackgroundColor(QColor)added to prevent hidding the- QGLWidgetfunction.
- QGLViewer::setForegroundColor(QColor)added for consistency reasons.
- A new keyboardAndMouseexample.
Bug fixes or improvements
 - Patch for QTextEditwith Qt 2.3.
October 24th, 2003 - 1.3.5-3
Bug fixes or improvements
 - The nVidia bug with anti-aliased fonts has been patched.
October 22nd, 2003 - 1.3.5-2
New features
 - Help window now has a keyboard and a mouse tabs.
- QGLViewer::mouseBindingsString()and- QGLViewer::shortcutBindingsString()functions.
- Tested on Windows Visual 6 (Qt 2.3) and with MS .NET (Qt 3.2).
Changes in the API
 - ManipulatedFrameassociated state key are no longer considered when they are manipulated as- MouseGrabber.
- QGLViewer::ZOOM_OUTrenamed- QGLViewer::ZOOM_TO_FIT.
- QGLViewer::CENTER_AS_RAPrenamed- QGLViewer::RAP_IS_CENTER.
Bug fixes or improvements
 - ManipulatedFramecan now correctly be used as mouse grabbers (see the keyFrames example).
- displayZBufferproblem with- glRasterPosfixed..
- displayFPScorrectly handles application default font size.
October 2nd, 2003 - 1.3.5-1
New features
 - Glutno longer needed if your Qt version is at least 3.1.
- QGLViewer::drawTextcan use different- QFont.
Changes in the API
 - QGLViewer::drawText()has changed :- 
   - QGLWidget::renderText()is used instead of GLUT (no longer needed) if your Qt version is at least 3.1.
- Parameter list differs : now uses QStringandQFont.
- Function is no longer constsince it callsmakeCurrent.
 
- draw3DText()does not work anymore (because of Qt's text rendering). Use- QGLWidget::renderText()instead.
- The following functions now have their origin in the upper left corner :
  
   - QGLViewer::startScreenCoordinatesSystem().
- Camera::projectedCoordinatesOf().
- Camera::unprojectedCoordinatesOf().
- MouseGrabber::checkIfGrabsMouse().
 
- Camera::setFOVToFitScene()is clamped to M_PI/2.0.
- The examples now #include "QGLViewer/qglviewer.h".
- The srcdirectory has subsequently been renamedQGLViewer.
September 24th, 2003 - 1.3.4-2
New features
 - Camera::getViewportfunction.
Changes in the API
 - drawNeeded()is emitted before each call to draw() (it was no longer the case if you chose to override draw()).
- ZOOM_OUTdefault mouse binding changed. See mouse page.
- Wheel bindings now also modified by setMouseStateKey()..
Bug fixes or improvements
 - Segmentation fault when exiting fixed.
- Frustum modification minimized when switching between PERSPECTIVE and ORTHO camera type.
- Disabled shortcuts no longer appear in help window.
- Missing includes on specific linux architecture were added.
- Missing display update when using fastDraw()fixed.
- Position and size of the window properly saved and restored when QGLViewer is a part of an other QWidget.
- Camera now correctly handles KeyFrameInterpolatorindexes out of range (bug finder Xadeck).
- No more erroneous initializeGL()message when several viewers are used (bug finder Franck).
July 16th, 2003 - 1.3.4-1
New features
 - Mouse bindings can entirely be customized. See mouse page.
- Double simple click action removed. See mouse page for new bindings.
- setMouseBinding, setWheelBindingmouse customization functions.
- The selectfunction is back ! Simply overload. Shift-LeftButton by default.
- QGLViewer::closeEvent()saves the current viewer state to file.
- QGLViewer icon added to the web pages.
- A Frame::alignOnAxis()function.
Changes in the API
 - setMouseStateKey()has been modified to fit with- setMouseBinding(). Read its documentation.
- The ManipulatedCameraFrame::Modeenum and allmodefunctions are removed.
- The mouseBehaviorenum is replaced bymouseHandler.
- The mouseStateKeyremoved and replaced bysetMouseBinding.
- QGLViewer::saveToFileForAllViewers()removed as- saveToFileis now called in- closeEvent.
- Camera::setRevolveAroundPointToSceneCenter()function removed.
Bug fixes or improvements
 - Zooms is not too slow when close to scene center.
June 27th, 2003 - 1.3.3-1
New features
 - Doxygen search engine added to the reference manual.
- setXXXWithConstraint()functions in- Frame.
- A finishedsignal inKeyFrameInterpolator.
- Z-buffer can be displayed with shortcut Z (thanks Sylvain).
- A Quaternion::randomOrientation()static function.
- The Max OS X version of Qt is now free ! Download the latest version.
- The gcc 2.96 version of the rpm in no longer maintained. You need to compile it from the .src.rpmfile.
Bug fixes or improvements
 - KeyFrameInterpolatorsnow enforce frame constraints.
- Easier compilation with darwin on mac architectures and on Linux Debian.
- QGLViewer::drawLight()made- constand has an optional scale.
- updateGL()no longer called in- QGLViewer::keyPressEvent()when the key is not handled.
June 1st, 2003 - 1.3.2-3
Bug fixes or improvements
 - Camera::horizontalFieldOfView()fixed. Previous value was flawed.
April 17th, 2003 - 1.3.2-2
Changes in the API
 - The rpminstalls the library in/usr/local, as does amake install. The examples now compile with no manual tweaking.
- Easier compilation with Qt 2.3. See the installation page for details.
April 17th, 2003 - 1.3.2-1
New features
 - A new helpString()function used byhelp().
- A Qt::QMessageBoxis now used to displayhelp().
- A Camera::getViewDirection()withfloatparameters.
- Windows compilation now creates a DLL.
- A Camera::setFOVToFitScene()function.
- coutand- cerrreplaced by- QMessageBoxand- qWarning.
- QGLViewer::message()removed.
- A new QGLViewer::snapshotCounter()makessaveSnapshot()faster inautomaticmode.
- QGLViewer::saveSnapshot()has an- overwriteparameter.
Changes in the API
 - Camera::zoomOutToFitScene() and zoomOnPixel()become- Camera::interpolateToFitScene() and interpolateToZoomOnPixel().
- QGLViewer::setShortcutKeytakes an optional stateKey parameter.
- Camera::setSceneRadiusand- setSceneCenterbecome- public.
Bug fixes or improvements
 - Camera::fitSphere()fixed (bug finder Sylvain).
April 10th, 2003 - 1.3.1-1
New features
- setForegroundColor()and- setBackgroundColor()functions.
- ManipulatedFrameinherits- MouseGrabber. See the example.
- A ManipulatedFrame::spinningSensitivity()function.
- A setSceneBoundingBox()withfloat[3]parameters.
Changes in the API
- In MouseGrabber,checkIfActive()and others becomecheckIfGrabsMouse, ....
- A new ManipulatedCameraFrameclass merges specificManipulatedFramecamera behavior.
- Camera::mouseDoubleClickEvent()and- Camera::adaptFrameState()removed.
Bug fixes or improvement
- Camera zNear() and zFar()are more tightly (a factor 2) set fromsceneRadius().
- Camera zNear() and zFar()are changed to display path whencameraPathIsEdited().
- A #define QGLVIEWER_VERSION 0x010301added. Allows#if QGLVIEWER_VERSION < Ox010300 ... #endifconditional code.
- make installcreates links to libraries instead of copies.
- Quaternioninternal representation switched from- floatto- doublebecause of precision problems with very small rotations (bug finder Christof).
March 26th, 2003 - 1.3.0-1
New features
- A new MouseGrabberclass for even more interactive applications. See the example
- Code was modified so that it compiles with the Qt 2.3 version (win32 free version).
 Screenshot saving is not supported with Qt 2.3.
- QGLViewer.setCamera()lets you switch between different cameras in your viewer.
- restoreFromFile()and- saveToFile()now also accept a directory as an argument.
- A QGLViewerPool()holds all the QGLViewers, andQGLViewerIndex()identifies a viewer.
Changes in the API
- viewer.cameraand- camera.frameare now pointers. Use- viewer.camera()and- camera()->frame()instead.
- manipulatedFrame()are now manipulated with the Control key instead of Alt.
- saveToFile()and- restoreFromFile()removed from constructor/destructor.
 Call- restoreFromFile()in your- init()function if you want to restore previous state.
 - saveToFile()is called when you quit your application (default key is Escape). See also- saveToFileForAllViewers().
- Camera::saveCurrentPOV()and- restorePOV()removed. Use- addKeyFrame()and- playKeyFramePath()instead.
- Control+Fx is replaced by Alt+double press Fx to delete a camera KeyFrame path.
 deleteKeyFrameStateKey()and associated functions are removed.
- Camera::getProjectionMatrix()and- getModelViewMatrix()are now public.
 Use these- camera()->get...Matrix()instead of the ones in QGLViewer, which have been removed.
- Camera::fieldOfView()in radians instead of degrees.
- The ShortcutActionnames used insetShortcutKey()were uppercased to prevent name conflicts.
Bug fixes or improvement
- Most of the documentation was updated. Detailed descriptions and more code examples were added.
- pixelGLRatio()fixed and now correct in ORTHO camera mode.
- Frame and Camera translation follow mouse in ORTHO mode.
- fitSphere()fixed in ORTHO camera mode.
March 19th, 2003 - 1.2.9-3
Bug fixes or improvement
- revolveAroundPoint()no longer moves in ORTHO mode.
- Special key (Esc, Return, Space...) displayed properly in help()
- rpm are created with the debugged gcc 3-2-2. Optimizations now available.
March 5th, 2003 - 1.2.9-2
Bug fixes or improvement
- Slerp interpolation debugged.
- Quaternion::log()and- exp()more robust.
- distanceToSceneCenter()changed so that- zNear()and- zFar()handle tight- sceneRadius().
- revolveAroundPointwas not fixed on screen with an ORTHO camera (bug finder Christof).
February 26th, 2003 - 1.2.9-1
New features
- A new SpinningFrameclass, betweenFrameandManipulatedFrame.
See the example.
- QGLViewer::setSceneBoundingBox()function.
- Quaternion::log()and- Quaternion::exp()functions.
- Quaternion::slerp()and- Quaternion::squad()static members.
- A new MultiView example.
- Double click is handled for ManipulatedFrameas forCamera.
- Frame::getMatrix()and- Quaternion::getMatrix()with double[16] parameters.
- A Frame::rotatesAroundPoint()function.
Bug fixes or improvement
- Camerano longer has a default- referenceFrame().
- Orientations interpolation now based on slerps in KeyFrameInterpolator.
- Successful compilation on Linux Debian distribution, with gcc 2.95 and 3.2.
Changes in the API
- Default install directory for make installand RPM becomes/usr/local.
 You should remove the previous files when you install this version (withrmorrpm -e libQGLViewer*).
- make installinstalls include files in- INCLUDE_DIR/QGLViewer.
- SpinningFrame, KeyFrameInterpolator and ManipulatedFrameupdate signals are automatically connected to all viewers.
- Camera::setSceneBoundingBox()also set the- sceneCenter().
- Camera::setConstraint()removed. Use- camera.frame.setConstraint()instead.
- Camera::zoomOutFromPixel()replaced by- zoomOutToFitScene().
- ManipulatedFrame::alignWithAxis()replaced by- Frame::alignWithFrame().
- QGLViewer::convertClickToLine()moved in- Cameraand takes- int.
January 30th, 2003 - 1.2.8-3
New features
- A convenient Camera::pixelGLRatio()function
Bug fixes or improvement
- Minor changes in the trackball behavior.
- Visual feedback when a double simple click is used to change the revolveAroundPoint().
- std::minpatched for windows compilation
Changes in the API
- QGLViewer::help()becomes a public method.
January 22nd, 2003 - 1.2.8-2
Bug fixes or improvement
- The PLANEconstraint type can no longer be used for rotations.
- A KeyFrameInterpolatorused to crash if the path was deleted while interpolating (bug finder Sylvain).
- drawAxis()and- drawGrid()no longer save the openGL state.
 - postDraw(), that call them does it instead.
Changes in the API
- Camera::loadProjectionMatrix()and- Camera::loadModelViewMatrix()are no longer protected.
January 15th, 2003 - Version 1.2.8
New features
- A textureViewer pedagogical example shows how to map textures with OpenGL.
- Camera::pointUnderPixel(x,y)to convert from screen to 3D coordinates.
- New cool trackball functionalities, see mouse page for details.
- In Camera : setSceneBoundingBox(), zoomOnPixel(), viewDirection().
- The ManipulatedFramenow has arotationSensitivity()and atranslationSensitivity().
Bug fixes or improvement
- Camera::lookAt()preserves the horizon.
- Camera::fitSphere()no longer modifies the orientation.
- The ManipulatedFramebug was (finally) identified...and not fixed. See the AxisPlaneConstraint() man page for details.
- There used to be a problem in the displayed FPS when the manipulatedFrame was changed (bug finder Sylvain).
- There was a Quaternion drift. They are now re-normalized (bug finder Stéphane).
Changes in the API
- The SPECIALmouse behavior disappears. See the mouse page.
- The select()function is removed. OverloadmousePressEvent()to
implement selection, see the select example.
December 14th, 2002 - Version 1.2.7-2
New features
- QGLViewer::currentFPS()returns the current frame rate.
- QGLViewer::setSnapshotFormat()and- QGLViewer::snapshotFormat().
- Quaternion::matrix()to use Quaternions as openGL 4x4 matrices.
- QGLViewer::draw3DText()to draw text in 3D, see the draw3DText example.
Bug fixes or improvement
- Frame spinning threshold was flawed. Unwanted spins should no longer occur.
- Camera translation is inferred from revolveAroundPoint(). Should fix problems with small objects in large scene.
- libGLcorehas been removed from the rpm dependencies.
Changes in the API
- QGLViewer::saveSnapshot()has only one parameter.
December 4th, 2002 - Version 1.2.7
New features
- KeyFrameInterpolatorclass. See the- keyFramesexamples.
- Key Frames can be used to define a camera path. Binded on F1-12 (see keyboard page).
- Snapshot can be saved in EPS, PS and XFIG vectorial format (thanks Cyril).
- Gestion of a QGLViewer pool. See QGLViewer::updateGLForAllViewers()andQGLViewer::connectSignalToAllViewers().
- The complete QGLViewer state can be saved and restored in XML format (see saveToFile()andrestoreFromFile(). All classes implementdomElement()andinitFromDOMElement().
- Quaternion::inverse()and- Quaternion::invert(): two separated methods (thanks Dominique).
- Frame::modified()signal is now emitted when a frame is modified.
- constversions of- Frame::translate()and- Frame::rotate().
- Camera::setCameraFromProjectionMatrix()(thanks Sylvain).
- +/- change camera fly speed. Arrows move the camera.
- designer cw files (custom widget) are distributed with the library (in include_dir/cwFiles).
Bug fixes or improvement
- Float trigonometric function removed : now compile on Mac OS X architecture.
- QGLViewer::startScreenCoordinatesSystem()was flawed, now ok. See the screenCoordSystem example.
- The different slots (toggleDisplayFPS(), toggleDrawAxis()...) now callupdateGL(). The qt bug that prevented it was patched.
- REVOLVE trackball orientation no longer depends on the mouse path.
- Vecclass slightly modified (some const removed and normalize() returns a ref).
- Quaternion::axis()and- Quaternion::angle()now respect the 0-pi specification.
Changes in the API
- Most of the "Display of visual hints" functions' names were changed. See the QGLViewerdocumentation.
- Camera::setRevolveAroundPoint()is replaced by- Camera::seamlesslySetRevolveAroundPoint().
- QGLViewer::animationPeriod()replaces- QGLViewer::animationInterval().
- Camera::aspect()and- QGLViewer::aspect()are now named- aspectRatio().
- Quaternion::setAxisAndAngle()becomes- Quaternion::setAxisAngle().
- MouseBehavior enum is uppercased : { CAMERA, FRAME, SPECIAL } (see QGLViewer::setMouseStateKey()andmouseStateKey()).
- Exit2 shortcut key ('Q') removed. Exit key (Escape) remains.
September 10th, 2002 - Version 1.2.6
New features
- The entire library and the examples now use the threaded version of QT.
- Pressing the left and middle mouse button together rotates the scene around an axis orthogonal to the screen.
- Camera::setUpVector()function.
- Camera::setOrientation(theta, phi): an other easy way to position the camera.
- Frame::getMatrix(), Frame::getWorldMatrix(), Frame::worldMatrix(): new matrix expressions of a frame transformation.
- FullScreen mode now set the parent window (if any) in full screen mode.
- Frame::transformOf()and similar functions to convert vectors between frames.
- In FLY mode (see Camera::setMode()), a double click changes fly speed. See mouse page.
Bug fixes or improvement
- QGLViewer::drawLight()polished. See the drawLight example.
- Quaternion::setFromRotationMatrixfixed. Was completely flawed (thanks Sylvain).
- Camera::setOrientationfixed. It used to change the camera position too because of the complex camera frame setup (web page to come).- setPositionand- setOrientationcan now be used in any order. See also- setOrientation(theta,phi)in the NEW section.
- Frame::setConstraint()now supports a NULL pointer, which intuitively results in no constraint.
- Camera::FLY modechanged to maintain the horizon.
- Quaternion(from, to)had a problem with angles > pi/2 and null vectors.
Changes in the API
- QGLViewer::setDisplayTextbecomes- QGLViewer::setEnableText(idem for- QGLViewer::toggleEnableText()and- QGLViewer::isTextEnabled()).
It controls whether- QGLViewer::drawText()actually draws text
or not (default is yes).
Convenient to remove all the displayed text with a single shortcut ('?' by default).
- Frame::setRotationAxisAngle(),- Frame::setOrientationAxisAngle()now take angles expressed in radians instead of degrees.
- FullScreen mode shortcut key changed to Alt-Return, to fit the windows standard..
- Frame::orientationOf()is replaced by Frame::transformOf().
Mardi 21 Juillet - Version 1.2.5
New features
- Stereo display available. See the stereoViewer example.
- A startScreenCoordinatesSystem()function that allows to directly draw in screen coordinates.
- A new help()function. Key Binding 'H'. Complete default behavior.
- First RPM release, some cleanup, web pages updated.
- Web pages will now be in english, so that they can be shared on the web. Maintaining two versions is really too much work.
Changes in the API
- Text drawing is done using drawText()directly indraw().
- Key shortcut are no longer defined by static variables. They can be tuned using setShortcutKey()andsetShortcutStateKey()See alsosetMouseStateKey(), setSavePOVShortcutKey(),....
Please send any comment, suggestion or problem by e-mail.
   
   Last modified on Wednesday, June 24, 2015.
  Last modified on Wednesday, June 24, 2015.