GLT ZPR - Zoom, Pan and Rotate
GLT ZPR is a mouse manipulation module for C or C++
GLUT/OpenGL programs. With the addition of two lines
of code, any GLUT based OpenGL program can include
mouse-based zooming, panning and rotation.
The module works by supplying GLUT callback functions
for glutReshapeFunc, glutMouseFunc and glutMotionFunc.
These provide VRML examiner-style mouse manipulation using the left,
middle and right mouse buttons. The middle button can be emulated by using both
left and right together. The ZPR callback functions will manage the
OpenGL modelview matrix, according to mouse events received via GLUT.
GLT ZPR can be included in any C or C++ application
by adding zpr.c and
zpr.h. The zprInit()
function should be called after the window is
created (glutCreateWindow) and the initial scaling
and orientation has been set.
A sample program zprdemo.c
is also included.
Downloads
Known Issues
- For best results, the object should be centered on the origin.
- Only one GLUT window can use the zpr module at a time.
- Use an orthographic projection, rather than perspective.
- Fog behaves strangely when combined with ZPR zooming.
- Configure zNear and zFar clipping planes carefully.
- ZPR manipulates the OpenGL modelview matrix, push() and pop() as necessary.
Applications
Visualising atom structures produced by Simulated Annealing
 |
Input data in the form of 2D or 3D co-ordinates taken from
Monte Carlo simulations. The process of simulated
annealing may result in crystal lattice structures,
best viewed and analysed in three dimensions.
Using GLT ZPR, this simple OpenGL application was hacked together
in 1.5 days.
Courtesy of Joseph Antony
|
Visualising the Lorenz Attractor
 |
The Lorenz Attractor is a simple system of non-linear
first order differential equations. (The velocity at
each position is a function of x,y and z.)
Paths traced through the attractor exhibit characteristics
of of Chaos - sensitivity to initial conditions and
long-term unpredicitability (dynamic instability).
Since the Lorenz Attractor is a fundamentally three-dimensional,
it can be best appreciated interactively with the facility to
zoom, pan and rotate.
|
Visualising an Ant Colony
 |
As part of an introductory graphics programming course,
students were asked to model an ant colony. Many
made use of ZPR for mouse navigation of their 3D
interactive models.
My thanks to the Interactive3D class of 2003 for an
interesting and entertaining semester.
Courtesy of Bok Thye Yeow
|
Spherical Harmonics
 |
A program called SHG demonstrates principles of
spherical harmonics using GLT ZPR.
Courtesy of Adomas Paltanavi
|
History
GltZpr0.4 Oct 22 2003
Added support for mouse picking using OpenGL selection mode.
GltZpr0.2 Mar 7 2003
Added support for application-specified center of rotation and zooming.
GltZpr0.1 Sep 15 2001
Initial release.
License
GLT source code available under LGPL.
No warranty, no responsibility taken.
This software is considered a stable release.
Links
Similar functionality
Other GLT Software
|