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
mouseGrabberChanged
signal.
- 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::drawGrid
and 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
setStateFileName
method (default stateFileName
is .qglviewer.xml
, as before).
- A new
helpWidget
method.
- A Debian package of the library is now available (thanks to Artur Czechowski).
Changes in the API
saveToFile
and restoreFromFile
were renamed
saveStateToFile
and restoreStateFromFile
.
They no longer take file names as parameters, use stateFileName
instead.
Bug fixes or improvements
- Version number saved in state files.
February 9th, 2005 - 1.3.9-4
New features
restoreFromFile()
now returns a bool
that 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.xml
file.
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
setMouseBindingDescription
parameters reordered.
startScreenCoordinatesSystem
z 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
Vec
values 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 called updateGL
fixed (bug finder Stéphane).
- No more error message when no
.qglviewer.xml
file 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
ManipulatedFrame
when used as MouseGrabber
.
- 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 in draw()
fixed.
EPSInterface.ui
version 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
QGLViewer
constructor, 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
drawFinished
signal, that can be connected to saveSnapshot()
to create movies.
- New
firstTime(), lastTime()
and duration()
method in KeyFrameInterpolator
.
- 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, ManipulatedFrame
and ManipulatedCameraFrame
have copy constructors and = operators.
Vec
and Quaternion
classes 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 QColor
instead of Vec
. Attention, range is 0-255 instead of 0.0-1.0
setSelectRegionSize()
replaced by setSelectRegionWidth()
and setSelectRegionHeight()
.
- Spurious
foregroundColor()
and backgroundColor()
methods removed.
- The
EXIT KeyboardAction
was renamed EXIT_VIEWER
because 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.
KeyFrameInterpolator
documentation mostly rewritten.
cwFiles
custom widget directory removed and replaced by a qglviewer.cw
file.
- Default
snapshotFormat()
set to the first one available (instead of JPEG).
mouseTracking
state no longer saved in (nor restored from) .qglviewer.xml
file.
June 7th, 2004 - 1.3.8-3
Changes in the API
QAccel
abandoned : user defined key bindings have the priority.
setKeyboardAccelerator()
and setKeyDescription()
take an int
as parameter instead of a QKeySequence
.
keyboardAccelerator()
logically returns an int
accordingly.
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 Frame
parameter.
Changes in the API
ShortcutAction
enum renamed KeyboardAction
.
- New
MOVE_CAMERA
and FLYSPEED
values added to the KeyboardAction
enum, 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_BOTTOM
renamed 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
KeyboardAction
added (MOVE_CAMERA_LEFT, INCREASE_FLYSPEED, ...
.
ManipulatedFrame
didn'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).
Shortcut
help 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.bz2
format.
make install
now also install the documentation (default path is /usr/local/share/doc/QGLViewer
).
- New
make
options 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
ManipulatedFrame
and ManipulatedCameraFrame
.
- 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()
and interpolated()
signals are no longer
connected to all the viewers updateGL()
slots.
If you use several viewers, you should now explicitly make these connections.
See the signals' documentations for details.
- The
ManipulatedFrame::mouseMotion
enum (ROTATE, ZOOM,...) is renamed QGLViewer::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).
MouseGrabber
no 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.xml
files are not compatible).
- The
TriangleSetConstraint
class has been removed from the main library and moved
in the triSetConstraint
contrib example.
Bug fixes or improvements
- Problem with
MouseGrabber/ManipulatedFrame
wheel zoom fixed.
QGLViewer::saveToFileForAllViewers()
is back and called by Escape (problems with multiple viewers).
- The
.qglviewer.xml
state 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_REGION
mouse action, binded to Shift + middle button.
- The associated
Camera::fitScreenRegion()
function.
Changes in the API
startScreenCoordinatesSystem
no 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
ManipulatedFrame
used as
MouseGrabber
(bug finder Cyril).
- Unclean old malloc removed from EPSRender code.
libQGLViewer135.obj
error message with Visual C++ removed.
November 7th, 2003 - 1.3.5-5
New features
Bug fixes or improvements
ManipulatedFrame
grabsMouse 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 QGLWidget
function.
QGLViewer::setForegroundColor(QColor)
added for consistency reasons.
- A new
keyboardAndMouse
example.
Bug fixes or improvements
- Patch for
QTextEdit
with 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
ManipulatedFrame
associated state key are no longer considered when they are manipulated as MouseGrabber
.
QGLViewer::ZOOM_OUT
renamed QGLViewer::ZOOM_TO_FIT
.
QGLViewer::CENTER_AS_RAP
renamed QGLViewer::RAP_IS_CENTER
.
Bug fixes or improvements
ManipulatedFrame
can now correctly be used as mouse grabbers (see the keyFrames example).
displayZBuffer
problem with glRasterPos
fixed..
displayFPS
correctly handles application default font size.
October 2nd, 2003 - 1.3.5-1
New features
Glut
no longer needed if your Qt version is at least 3.1.
QGLViewer::drawText
can 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
QString
and QFont
.
- Function is no longer
const
since it calls makeCurrent
.
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
src
directory has subsequently been renamed QGLViewer
.
September 24th, 2003 - 1.3.4-2
New features
Camera::getViewport
function.
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_OUT
default 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
KeyFrameInterpolator
indexes 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, setWheelBinding
mouse customization functions.
- The
select
function 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::Mode
enum and all mode
functions are removed.
- The
mouseBehavior
enum is replaced by mouseHandler
.
- The
mouseStateKey
removed and replaced by setMouseBinding
.
QGLViewer::saveToFileForAllViewers()
removed as saveToFile
is 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
finished
signal in KeyFrameInterpolator
.
- 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.rpm
file.
Bug fixes or improvements
KeyFrameInterpolators
now enforce frame constraints.
- Easier compilation with darwin on mac architectures and on Linux Debian.
QGLViewer::drawLight()
made const
and 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
rpm
installs the library in /usr/local
, as does a make 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 by help()
.
- A
Qt::QMessageBox
is now used to display help()
.
- A
Camera::getViewDirection()
with float
parameters.
- Windows compilation now creates a
DLL
.
- A
Camera::setFOVToFitScene()
function.
cout
and cerr
replaced by QMessageBox
and qWarning
.
QGLViewer::message()
removed.
- A new
QGLViewer::snapshotCounter()
makes saveSnapshot()
faster in automatic
mode.
QGLViewer::saveSnapshot()
has an overwrite
parameter.
Changes in the API
Camera::zoomOutToFitScene() and zoomOnPixel()
become Camera::interpolateToFitScene() and interpolateToZoomOnPixel()
.
QGLViewer::setShortcutKey
takes an optional stateKey parameter.
Camera::setSceneRadius
and setSceneCenter
become public
.
Bug fixes or improvements
Camera::fitSphere()
fixed (bug finder Sylvain).
April 10th, 2003 - 1.3.1-1
New features
setForegroundColor()
and setBackgroundColor()
functions.
ManipulatedFrame
inherits MouseGrabber
. See the example.
- A
ManipulatedFrame::spinningSensitivity()
function.
- A
setSceneBoundingBox()
with float[3]
parameters.
Changes in the API
- In
MouseGrabber
, checkIfActive()
and others become checkIfGrabsMouse, ...
.
- A new
ManipulatedCameraFrame
class merges specific ManipulatedFrame
camera behavior.
Camera::mouseDoubleClickEvent()
and Camera::adaptFrameState()
removed.
Bug fixes or improvement
- Camera
zNear() and zFar()
are more tightly (a factor 2) set from sceneRadius()
.
- Camera
zNear() and zFar()
are changed to display path when cameraPathIsEdited()
.
- A
#define QGLVIEWER_VERSION 0x010301
added. Allows #if QGLVIEWER_VERSION < Ox010300 ... #endif
conditional code.
make install
creates links to libraries instead of copies.
Quaternion
internal representation switched from float
to double
because of precision problems with very small rotations (bug finder Christof).
March 26th, 2003 - 1.3.0-1
New features
- A new
MouseGrabber
class 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, and QGLViewerIndex()
identifies a viewer.
Changes in the API
viewer.camera
and camera.frame
are 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
ShortcutAction
names used in setShortcutKey()
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()
.
revolveAroundPoint
was not fixed on screen with an ORTHO camera (bug finder Christof).
February 26th, 2003 - 1.2.9-1
New features
- A new
SpinningFrame
class, between Frame
and ManipulatedFrame
.
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
ManipulatedFrame
as for Camera
.
Frame::getMatrix()
and Quaternion::getMatrix()
with double[16] parameters.
- A
Frame::rotatesAroundPoint()
function.
Bug fixes or improvement
Camera
no 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 install
and RPM becomes /usr/local
.
You should remove the previous files when you install this version (with rm
or rpm -e libQGLViewer*
).
make install
installs include files in INCLUDE_DIR/QGLViewer
.
SpinningFrame, KeyFrameInterpolator and ManipulatedFrame
update 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 Camera
and 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::min
patched 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
PLANE
constraint type can no longer be used for rotations.
- A
KeyFrameInterpolator
used 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
ManipulatedFrame
now has a rotationSensitivity()
and a translationSensitivity()
.
Bug fixes or improvement
Camera::lookAt()
preserves the horizon.
Camera::fitSphere()
no longer modifies the orientation.
- The
ManipulatedFrame
bug 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
SPECIAL
mouse behavior disappears. See the mouse page.
- The
select()
function is removed. Overload mousePressEvent()
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.
libGLcore
has 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
KeyFrameInterpolator
class. See the keyFrames
examples.
- 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()
and QGLViewer::connectSignalToAllViewers()
.
- The complete QGLViewer state can be saved and restored in XML format (see
saveToFile()
and restoreFromFile()
. All classes implement domElement()
and initFromDOMElement()
.
Quaternion::inverse()
and Quaternion::invert()
: two separated methods (thanks Dominique).
Frame::modified()
signal is now emitted when a frame is modified.
const
versions 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 call updateGL()
. The qt bug that prevented it was patched.
- REVOLVE trackball orientation no longer depends on the mouse path.
Vec
class 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
QGLViewer
documentation.
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()
and mouseStateKey()
).
- 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::setFromRotationMatrix
fixed. Was completely flawed (thanks Sylvain).
Camera::setOrientation
fixed. It used to change the camera position too because of the complex camera frame setup (web page to come). setPosition
and setOrientation
can 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 mode
changed to maintain the horizon.
Quaternion(from, to)
had a problem with angles > pi/2 and null vectors.
Changes in the API
QGLViewer::setDisplayText
becomes 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 in draw()
.
- Key shortcut are no longer defined by static variables. They can be tuned using
setShortcutKey()
and setShortcutStateKey()
See also setMouseStateKey(), setSavePOVShortcutKey(),...
.
Please send any comment, suggestion or problem by e-mail.
Last modified on Monday, August 31, 2009.