Camera::devicePixelRatio
property, to support high DPI screens.CMake
configuration and GitHub build action (thanks Franck)./Library/Frameworks
as default install directory on MacOS (thanks Alessandro).Camera::pointUnderPixel()
for high DPI screens (thanks Bertrand).camera.h
(thanks Gianluca and Laurent).QGLViewer
extends QOpenGLWidget
instead of the deprecated QGLWidget
(huge thanks
to Gianluca).Using update()
instead of updateGL()
is one of them
renderText
methods were backported to maintain backward compatibility.
Some overloaded constructors (using a QGLFormat
or a sharedWidget) are deprecated since they have no equivalent.
-qt4
or -qt5
suffix to library file name on Linux. Fixes #18 (thanks Laurent).contribs
examples no longer build by default. Relied on deprecated GL calls (Fixes #31)QMAKE_MAC_SDK
to fix compilation on Mac with recent XCode versionsQGLViewer
directory. The examples' pro files are simplified and more
robust.
libGlu
dependency in examples that rely on it (thanks Brice).qreal
issue in Quaternion::FromRotationMatrix()
(thanks Che, again).Camera::pointUnderPixel()
introduced by the switch to qreal (thanks Che).qreal
(i.e double
) type for floating point numbers.getX(qreal & x)
methods, which take a reference as a parameter, and which type
needs to be changed to qreal
.
libGLU
dependency on Mac since it conflicts with Yosemite (thanks Hae-Jeong, Federico).libGLU
dependency on the library for Linux (thanks Tingran).algorithm
in VRender to remove VS warnings (thanks Jeffrey).std::min/std::max
to fix Visual Studio compilation errors in VRender.saveSnapshot.cpp
(thanks xiaoyi).KeyboardAction
enum was made public.revolveArountPoint
is renamed pivotPoint
.flyUpVector
is renamed sceneUpVector
.setRotatesAroundUpVector
method defines a new rotation mode, where the horizon
is preserved.setZoomsOnPivotPoint
method defines a new zoom behavior.zoomSensitivity
enables you to tune the effect of a mouse displacement on the zoom.GLfloat
overrides of Camera's get..Matrix()
methods.alignWithAxis
threshold set to 0 (i.e. it will always align).position()
method is faster and more precise in case there is no referenceFrame
.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 Juergen).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.