setMouseBinding
methods take an optional Qt:Key
argument, indicating that this key has to be pressed to trigger the action. New similar setWheelBinding
methods.setMouseBinding
methods accept only one button, instead of an improbable combination of buttons.QGLViewer/manipulatedFrame.h
.QGLViewer
's MouseHandler
, ClickAction
and MouseAction
enums are now public.ManipulatedFrame::currentMouseAction()
method.RAP_FROM_PIXEL
click action resets the revolve around point to sceneCenter
when there is no point under the cursor.restoreStateFromFile
.clearShortcuts
and clearMouseBindings
methods reset all bindings.update()
instead of updateGL()
for smoother updates.-lGLU
linked library on Linux when building the examples.Camera.setPhysicalDistanceToScreen
method has been deprecated. Use setPhysicalScreenWidth
instead.VRenderInterface
ui file (thanks David).qglviewer.rc
problem when compiling designerPlugin on windows. Again (thanks Dennis)qglviewer.rc
problem when compiling designerPlugin on windows.Vec
now using double
instead of float
.pro
for a better out-of-the-box compilation using Qt Creator.qglviewer.rc
and qglviewer.ico
files in package.Vec
operations now return double
instead of float
to avoid precision issues (thanks Lionel).double
replacement in Quaternion
(thanks Pierre and Lionel).QGLViewerPool()
instead of always being appended (suggester Pierre).qglviewer.icns
file which was missing from Mac package.-Wl,-rpath
option eliminates the need for LD_LIBRARY_PATH
tuning on Linux...qch
file available to import documentation into Qt's assistant (suggester Laurent).DYLD_LIBRARY_PATH
is no longer needed to run the examples on Mac architecture (Linux soon to come).CONFIG += no_keywords
so that the library can be used with Boost.GL_DEPTH_TEST
disabled before rendering frame rate to fix a weird display on Mac (bugfinder FX).About
button has been moved to a cleaner new tab in the help window.WIN32
added to default DEFINES
to fix compilation problems with Visual Studio when using the Intel compiler (bugfinder Jiawen).restoreStateFromFile
updates camera aspect ratio when loading window's size.aboutQGLViewer()
method now displays the help window 'About' tab.snapshotToClipboard()
method binded to Ctrl+C
eases snapshot creation..vcproj
project files added to QGLViewer
and examples' directories.printf
debug calls removed. Tested with the future version 4.4 of gcc.domUtils.h
includes fixed (thanks Frederic).Camera::initFromDOMElement
bug fixed (bugfinder Forrester).scaledFont()
method to be used with renderText()
. Bugfinder Jorik.QPainter
drawing.QGLViewer
is no longer removed from the QGLViewerPool
(a null
replaces it)
in order to preserve viewer's indexes (used by stateFileName
) (bug finder Gianluca).Camera
now saves and restores its scene center and radius in its XML representation.Camera::getModelViewProjectionMatrix
convenient method (suggester Elmar).Camera::pointUnderPixel()
fixed (bug finder Aurélien).screenCoordSystem
example (bug finder Greg).DRIVE
MouseAction. Similar to fly, but speed depends on mouse vertical position (suggester Le Thanh).Camera
.orthogonalVec()
had problems for some vectors (bug finder David).MOVE_FORWARD
and MOVE_BACKWARD
behavior improved.Camera::interpolateTo
moves the Camera to a target position.setSceneCenter
and setSceneRadius
were made virtual
.unregisterTimer
error mesage fixed (thanks Xavier).QT3_SUPPORT
under Qt4 fixed (prevented designer plugin creation under windows).setSnapshotFilename
(lowercase n) method (kept for backward
source code compatibility) was removed due to ActiveX conflicts (thanks Juergen).saveSnapshot
was not recognized as a slot with Qt3 (bug finder Gheorghe)..jpg
extension.Camera::getFrustumPlanesCoefficients()
function (see the frustumCulling example).Camera::setFromModelViewMatrix()
makes a Camera
match a given modelView
matrix (suggester Daria).Vec::float*()
operator, so that Vec
parameters can be passed to float*
filling methods.Quaternion::normalized()
method.Camera::rightVector()
that completes the viewDirection()
and upVector()
methods.Camera::draw()
method parameters changed. Can now also draw ORTHOGRAPHIC Camera type.Camera::drawCamera()
static method removed. Use (new Camera())->draw()
instead.copyBufferToTexture()
.Quaternion::setFromRotationMatrix
takes a double
(instead of
float
) parameter for better precision.Frame::referenceFrame()
now returns a const Frame*
(suggester Xavier).Quaternion::setFromRotatedBase()
renamed setFromRotatedBasis()
.ClickAction
and then passed to the
mouseGrabber()
if no ClickAction
corresponds (was the inverse).drawAxis()
and drawGrid()
no longer modify the OpenGL state (suggester Manu).KeyFrameInterpolator
path drawing fixed (bug finder Manuel).Quaternion(from, to)
bug fixed for colinear vectors (bug finder Aurélien).Quaternion::setFromRotationMatrix
patched and made more robust.zClippingCoefficient
correctly restored when cameraIsEdited
.Frame::initFromDOMElement
normalizes the orientation.snapshotFilename
renamed snapshotFileName
(uppercased 'N').snapshotCounter
is not appended to snapshotFileName
in automatic mode.saveSnapshot(fileName)
no longer opens a file dialog (bug finder Jürgen).The library now compiles with Qt version 2, 3 and 4. When enum or function names have been changed in Qt4, the QGLViewer documentation uses their Qt 4 version and gives Qt 2 & 3 translations.
New featuresQGLViewer::drawArrow()
method from two points (thanks Sylvain).
Qt::ButtonState
(Qt versions 2 & 3) has been split into
Qt::KeyboardModifiers
and Qt::MouseButtons
in Qt4. Since these are just
enums, previous code will still work.
playPathStateKey()
and addKeyFrameStateKey()
were renamed
playPathKeyboardModifiers()
and addKeyFrameKeyboardModifiers()
.int
parameter has been replaced by a type-safe Qt::KeyboardModifiers
.setHandlerStateKey
renamed setHandlerKeyboardModifiers
.Camera
copy constructor fixed (bug finder Xavier).QGLViewer::copyBufferToTexture()
to copy the frame buffer in a texture.Camera::drawCamera()
and draw()
methods.QGLViewer::drawArrow()
static method.QGLViewer::mouseGrabberIsEnabled()
method.=
operator implemented for Camera
and
KeyFrameInterpolator
classes.address()
deprecated, use operator const float*
instead.sqNorm()
renamed Vec::squaredNorm()
.randomOrientation
renamed randomQuaternion
.operator*
now returns a non-const Quaternion
.referenceFrame()
is no longer const
.setOrientationAxisAngle()
and Frame::setRotationAxisAngle()
removed.translate(float t[3])
and Frame::rotate(float q[4])
removed: use Vec
and Quaternion
equivalents instead.invert()
and Frame::worldInvert()
removed: use inverse()
instead.inverseMatrix()
and worldInverseMatrix()
removed: use inverse().matrix()
instead.setReferenceFrame()
emits the modified()
signal as expected.SpinningFrame
class has been removed. Spinning was integrated in ManipulatedFrame
.spinned
signal renamed spun
.Camera
parameter.float
methods removed: use Vec
equivalents instead.*Dir()
methods renamed *Direction()
.keyFramePosition()
and keyFrameOrientation()
removed: use KeyFrame().position()
and KeyFrame().orientation()
instead.finished()
renamed endReached()
.float
parameter removed. Use their Vec(x,y,z)
and Quaternion(q0,q1,q2,q3)
equivalents instead.editCameraPath()
and cameraPathIsEdited()
removed.float
versions of getModelViewMatrix
and
getProjectionMatrix
removed. Use double
equivalents instead.pointUnderPixel()
...) take QPoint
parameter instead of x and y. Use QPoint(x,y)
constructor if needed.nbPaths()
removed. Camera now contains an arbitrary number of paths.fitScreenRegion
now takes a QRect
parameter.getOrthoWidthHeight
made virtual
.ORTHO
type renamed ORTHOGRAPHIC
.zNearCoef
and zClippingCoef
renamed zNearCoefficient
and zClippingCoefficient
.setWindowWidthAndHeight
renamed setScreenWidthAndHeight
.playKeyFramePath, deleteKeyFramePath and resetKeyFramePath
renamed playPath, deletePath and resetPath
.addKeyFrame
renamed addKeyFrameToPath
.distanceToScreen()
renamed physicalDistanceToScreen()
.distanceToZeroParallaxPlane()
renamed focusDistance()
.IODist
renamed IODistance
.setCameraFromProjectionMatrix()
renamed setFromProjectionMatrix()
.cameraPathIsEdited
and editCameraPath
renamed cameraIsEdited
and setCameraIsEdited
.EDIT_CAMERA_PATHS
renamed EDIT_CAMERA
in prevision of a future camera edition.setDrawAxis, setDrawGrid, setDisplayFPS, setDisplayText
renamed
setAxisIsDrawn, setGridIsDrawn, setFPSIsDisplayed, setTextIsEnabled
.float
methods removed. Use Vec
and Quaternion
equivalents instead.drawAxis
made static
.setMouseStateKey
renamed setHandlerStateKey
.keyFrameKey
renamed pathKey
, with swapped parameters.playKeyFramePathStateKey
renamed playPathStateKey
.keyboardAccelerator
(resp. setKeyboardAccelerator
) renamed
shortcut
(resp. setShortcut
).select, beginSelection, endSelection
and postSelection
use
QPoint
instead of x
and y
.toggleAnimationMode
renamed toggleAnimation
.version
syntax in state file changed and is now compared with current version on restoration.camera()
.connectSignalToAllViewers, disconnectSignalToAllViewers
and updateGLForAllViewers
removed. Use QGLViewerPool
insead.zip
and tar
files names include release number.rpm
now includes a static version of the library.QGLViewer::stateFileName
no longer skips the directory prefix.QGLViewer::drawLight
nicer and fixed.fastDraw()
. A final draw()
is now triggered at a short delay after the last wheel event.