Change Log
January 15th, 2002 - Version 1.2.8
New features
- An textureViewer pedagogical example shows how to map textures with OpenGL.
Camera::pointUnderPixel(x,y)
to convert from screen to 3D coordinates.
- New cool trackball functionnalities, 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 spinnings should no longer occur.
- Camera translation is infered 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 shortcuts 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 emited 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
).
Camera::centerScene()
, binded on right mouse button double click.
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
- Intégration de l'affichage en stéréo.
- Apparition de
startScreenCoordinatesSystem()
qui permet de dessiner en coordonnées écran.
- Apparition de la fonction
help()
. Raccourci clavier : 'H'
- 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
- L'affichage du texte se fait désormais en appelant
drawText()
directement dans draw()
(plutôt qu'en dérivant la fonction displayText()
).
- 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 jeudi, janvier 16 2003.