PTViewer 2.5

Changes to version 2.4

o A bug which was introduced in 2.4 has been fixed:
bottom image of cubic panoramas displayed correctly.

o Fixed a bug which shifted images when interpolator
is changed (only PTZoom and cubic QTVR was
affected).

o Increased speed of PTZoom and cubic QTVR:
The previously used speed test now yields 25fps
(up from 18fps).

Changes to version 2.3

o Antialiasing algorithms implemented. These
are turned on by setting the parameter "antialias" to
true. A series of scaled source images is created.
Antialiasing is supported for equirectangular
panoramas, QTVR panoramas (cylinders,
cubes) and PTZoom images.
For details and an example see
<http://www.fh-furtwangen.de/~dersch/zoom/gletsch.html>

o New scripting function "setQuality(integer quality)"
can be used to change the interpolator. Quality must
be 0,1,2 or 3.

o Files (images, media) are loaded relative to the codebase, if
loading from the documentbase fails. This may
solve some of the security problems experienced
on some browsers.

o A default file named "PTDefault.html"
(case-sensitive) is read and parsed by PTViewer
prior to the HTML-file. This may be useful to
load standard controls like buttons and progress
bars.

o The 'inits' string may link to a target. URL and target
strings are separated by the character '*', eg
<PARAM name=inits value="url*target">

o PTCompass may be used as tilt-indicator rather
than as pan-indicator by setting the parameter
"tilt" to true.

o PTViewer no longer checks for a 'moov'
resource in QTVR-file. In previous versions,
this lead to the rejection of some valid QTVR-files.

o PTViewer is now processed by the Java optimizer
JOPT (Java Class File Optimizer by
Markus Jansen).

o The distribution now consists of 3 applet versions:
small, big and intermediate( for QTVR).

Changes to version 2.2

o Math routines further optimized. The speed test
(details see below) now yields:
Nearest neighbor mode: 40fps
Bilinear mode (equirectangular source) 30fps
Bilinear mode (QTVR-cube) 18fps

Changes to version 2.1

o Significant speed improvements, mainly in the bilinear mode,
which is set to default now (quality=3). The following speeds
(frames-per-second = fps) are obtained on a 750MHz Duron/
320*200pixel applet window using Sun JRE 1.3:
Nearest neighbor mode: 33fps
Bilinear mode (equirectangular source) 24fps
Bilinear mode (QTVR-cube) 18fps

o Inertia can be added to the viewer using a virtual
mass (parameter tag "mass"). The viewer then behaves
similar to some game engines. Reasonable values
are 10-30, default is 0.

o HTML parameter tag for 'pan' is processed correctly
in QTVR-cubes.

o Zooming is implemented in the object player PTObject
and PTMViewer/Object mode. The routines use the
standard Java scaling routines which unfortunately
leave much to be desired in terms of image quality.

Changes to version 2.0

o GNU-License applies to all extensions of PTViewer,
also to the QTVR-extension PTMViewer.

o Bugfix: QTVR-files with less than 6 tiles are processed
correctly.

o The order of tiles and images in QTVR files can be specified using
an "order" parameter and a comma separated list, eg
<PARAM name=order value=4,3,1,5,7,2,0,6>
That way, flattened Quicktime files or cubic files with
unusual image order are processed correctly.

o The sources are included in the distribution.

Changes to version 1.9

o QTVR cylindrical panorama and object movie
support added. See the updated documentation
for QTVR-playback with many examples at
<http://www.fh-furtwangen.de/~dersch/PTVJ/ptmvj.html>

o Dragging cursor now displayed only when mouse
is over the viewer window.

o The distribution no longer provides the
class files. They can be extracted from the jar-files
using Sun's 'Jar'-utility.

o Some bug-fixes.

Changes to version 1.8.2

o New extension PTMViewer for playback of
cubic QTVR panoramas added. Several additional
changes to PTViewer required for compatibility reasons.
See the documentation at
<http://www.fh-furtwangen.de/~dersch/PTVJ/ptmvj.html>
PTMViewer has a different license than the rest of PTViewer:
It is free for noncommercial use/shareware for commercial
applications. See the Readme file for more info.

o The Javascript callback function getview() has been changed.
It is now called by PTViewer whenever the view changes,
also during panning. This makes it possible to link several
panoramas on the same HTML-page using Javascript.
Navigating one panorama automatically moves the others.

o PTZoom now uses the same 'quality' settings as PTViewer.
This results is faster panning.

o Individual static hotspots can now be changed when a
new panorama is loaded without the need to redefine all
other static hotspots. Only those with numbers greater than
the changed hotspot are discarded. The same applies to some
other listed parameters (sounds, applets, not normal hotspots).

o PTZoom can process 256-color hotspot images like
PTViewer. The colors indicate the index of the hotspot.

o New scripting command SetURL(url) to load panoramic
file 'url'.

o Many minor bugfixes.

Changes to version 1.8.1:

o New scripting functions (javascript: and ptviewer:):
- newPano(String) - loads panoramic image described by String
(same syntax as panolist)
- loadROI(from, to) - load several roi-images
- loop() - repeat ptviewer:.. sequence of commands. may be used
for contineous panning.

o Any non-graphical applet may now be used as extension to
PTViewer. The documentation describes the use of the
GSMStreamer applet to add streaming sound, see
<http://www.fh-furtwangen.de/~dersch/PTVJ/helpers.html>

o PTZoom extension now supports download feedback via progress bar.

o Partial Panoramas: Several changes to improve display, and
new documentation with examples, see
<http://www.fh-furtwangen.de/~dersch/PTVJ/partial.html>

o Two different examples for usage of hotspot images as
tripod cap debugged and posted, see
<http://www.fh-furtwangen.de/~dersch/zoom/cap1.html>
<http://www.fh-furtwangen.de/~dersch/zoom/cap2.html>

o The PTFlat extension for display of flat images will be
removed. The same functionality is better provided
using the PTZoom extension as described in
<http://www.fh-furtwangen.de/~dersch/PTVJ/partial.html>

o Several minor changes and bugfixes.

Changes (Bug Fixes) to version 1.8:

o Preloading now compatible with encrypted images.

o Resize bug in PTViewer standalone application corrected,
status bar displayed properly in all platforms.

o partial panorama tilt limits corrected.

Changes to version 1.8b1

o PTZoom extension inserts high resolution
rectilinear images dynamically into the viewer window.
For an example of a 70:1 zoomable panorama see
<http://www.fh-furtwangen.de/~dersch/zoom/Zoom.html>

o Bug fix: Viewer now renders high quality images
at end of zoom.

o Default quality set to 2 (previously 1).

o All extensions now compatible with Netscape 6

o New parameter tags: "grid_bgcolor", "grid_fgcolor",
colors of panorama grid for tiled download.

o New parameter tags: "showSHS" in PTObject and PTZoom
extensions turn on static hotspot images after
extension and images are loaded and ready to display.
This feature can be used as download indicator, see
<http://www.fh-furtwangen.de/~dersch/zoom/Zoom.html>
for an example.

o Some more minor bug fixes and improvements.

Changes to version 1.8b0

o Text messages can be linked to hotspots. They
are displayed as small windows with one corner
being the hotspot. This corner is marked with a dot,
and the window is automatically positioned to
fit into the viewer. The window is shown either
permanently, pops up if the mouse enters the
hotspot, or can be turned on and of like any
other hotspot image.

o ROI images can be inserted in any order and
at any time into the panoramic image. By default,
they are all loaded at initialization time.
Alternatively, they may be loaded upon user
interaction or whatever suits.

o A grid-panorama is displayed if no "file"
parameter is specified, and the panorama width
is specified. This grid has horizontal and
vertical lines every 10 degrees.

o The back seam of scaled down preview panoramas
is displayed correctly. Also, fractional size
ratios work now.

o Some more minor bug fixes and improvements.

Changes to version 1.7.4

(1) Compatible now with Netscape 6

(2) Optional support for encrypted images using
PTCrypt (download from www.fh-furtwangen.de/~dersch).

(3) Region of Intererest (ROI) coding and progressive
download option added.

(4)Hotspot algorithms reworked with many bugfixes
and some minor changes, see doc for detail.

(5)Mouse cursor can be changed when mouse enters
applet window.

(6) Parser can use any quoting character

(7) Some minor bug fixes

Changes to version 1.7.3

(1) PTViewer maintains its own RAM image cache.
This cache is independent of the browsers cache. Any
image that is loaded will stay in memory unless
the parameter 'cache' is set to false. This also
applies to images loaded by extensions, eg PTMovies
should cache now in any browser.

(2) Hotspot images are now visible as soon as one edge
is moved into the viewer window. Previously, the center
had to be inside the viewer window.

Changes to version 1.7.2

(1) PTFlat fixed. See example in
<http://www.fh-furtwangen.de/~dersch/PTVJ_EX.zip>

(2) Preload option added: Any number of images
can be loaded while the viewer displays panoramas.
These images are cached and instantly available.

Changes to version 1.7.1

(1) Compass and JMF-support has been moved to separate
extensions (PTCompass and PTMedia). All previous features
are still accessible, but have to be called via 'applet0/1/2'
tag. The 'Controls.html' example (see
<http://www.fh-furtwangen.de/~dersch/PTVJ_EX.zip>)
has been updated.

(2) The newPano() function and all support functions
for setting initial values have been removed. Use
newPanoFromList() instead.

(3) The distribution now includes a minimum panorama
viewer applet (17.5kByte) and a full featured version
with all extensions (35kByte).

(4) The extension PTMovies now displays warped and unwarped
movies/animations.

(5) Several minor changes and bugfixes.

Changes to version 1.6

(1) The distribution has been simplified: Only one
jar file (~30kByte) contains all classes, and may be used as applet
or standalone program. Slightly smaller customized applets
can be generated using the supplied class files.

(2) An interface for interaction with other applets has
been implemented. These applets can manipulate almost any
feature of PTViewer. Three such applets (PTMovies, PTObject,
PTFlat, see descriptions below) which use this interface
are included as class files and in the jar-file.

(3) PTMovies can insert animations into the panorama. These
are warped, perspectively corrected, and appear as natural
elements of the VR-scene.

(4) PTObject is a 360 * 180 degree object viewer which uses
multiple images to display 3D-objects in front of a panorama
or static background.

(5) PTFlat is a flat image viewer which allows the user to scroll
and zoom. High quality bilinear interpolators are used which
give better image quality than most other image viewers.

(6) Panorama display can be disabled by not specifying a
filename. Using this mode, PTViewer can be used as Object
or flat image viewer using the above helper applets.

(7) Applet interaction is not supported on all java installations,
eg not on Mac/IE, Mac/iCab, AppletViewer and the standalone version
of PTViewer. To still be able to run the helper applets,
functions to load these applets into PTViewer are provided,
and enable their use on any java platform.

(8) The pixel interpolator can be selected using a 'quality'
parameter tag. See the html-documentation for details.

(9) The standalone version of the viewer displays correct window sizes
on Windows platforms now.

(10) All panoramas can be declared in a list using the pano0/1/2
tag. Previously, the first panorama had to be specified twice:
Once in the list, and once using separate parameter tags.
Now the first panorama of the list can be loaded using the tag
filename = ptviewer:0.

(11) Multiple ptviewer: scripting commands can be specified
using a semicolon separated list. Eg
ptviewer:moveTo(20,30,40,100);waitWhilePanning();playSound(0);moveTo(70,40,50,100)
performs a move, then plays the sound and moves on.

(12) An initialisation string can be specified using the 'inits'
parameter tag. This string may be any ptviewer command, or javascript
command, or url-link. It will be executed after the panorama is loaded.

(13) waitWhilePanning() function added which can be used
to create self-displaying tours, It should be called
after each moveTo() of moveFromTo() function call.

(14) Many minor bug fixes. Some problems regarding the
position of the wait image have not been changed since
the present solution appears to be most flexible.

Changes to version 1.5

(1) Calling javascript from the applet now also works for Internet Explorer
(Windows). The same syntax as in Netscape can be used, ie 'javascript:function()'.

(2) Routines for loading files changed to work with jar-archives. Packed
single file tours and self-diaplaying tours are possible now.

(3) Standalone PTViewer now displays several html files in separate
windows.

(4) Compass image can be turned on and off.

(5) Many minor changes and bug-fixes.

Changes to PTViewer 1.4

(1) Fixed bug that caused double download of panoramic images.
The download URL-connection is now explicitly forced to use the
browser cache. This is not always the default setting of
browsers as it should be.

(2) Warped hotspot images now work with hotspot masks.

Changes to version 1.3

(1) First version of a standalone java application PTViewer
posted. This viewer runs on any platform and displays panoramic
images as well as full featured VR-tours based on the internal
scripting method of the ptviewer applet. The current distribution
features a Macintosh implementation of the viewer, and the java
classes to build applications for other platforms. Download from
<http://www.fh-furtwangen.de/~dersch/PTVJAPP.zip>

(2) The size of the panoramic image is automatically detected for
display of the progress feedback. No psize parameter required.

(3) Fixed bug which prevented loading of new panoramas from
hotspots.

(4) Flushing of images removed to enable cashing in Interent Explorer.

Changes to v1.2

(1) Progressbar for download feedback added. See examples and
docs.

(2) Hotspots may be stacked. Arbitrary many actions can now
be linked to one hotspot.

(3) JMF-functions are now completely encapsulated using
the Reflection API. This should solve any problems on
non-JMF installations.

(4) New and extended scripting functions.

(5) Some minor bugfixes: Popup static hotspot images
work,etc.

Changes to v1.1

(1) Compass image turns in either direction and turns while panning.
A bug affecting the display of transparent image data has been corrected.

(2) Static hotspots may display images like panorama hotspots. These
may be permanently on, off, or popup. This feature can also be used
to display still images.

(3) Images displayed by hotspots may be permanently visible. Useful
for floating logos.

(4) Sound support added for the format au. The java docs also promise
aiff, wav and midi, which I couldn't test. Any number of
sound files can be loaded, and linked to hotspots (normal and static).
Playing sound is also accessible to scripting.

(5) Popup "images" in hotspots may be any ptviewer command, eg
playing a sound file. See the example "Controls.html" in the distribution.
Try to bump into the streetlight.

(6) Hotspot images may be declared as "warped". This causes the
specified image to be inserted into the panorama image rather
than into the viewer window. As a result, the image is blended
and fixed to the background. See the roof of the building to the
left in the example "Controls.html" which turns green when showing
the hotspots. This feature works for permanent, popup and normal
hotspots.

(7) Hotspot masks may be specified as one grayscale image sized
identical to the panoramic image. The gray value of a pixel (0-254)
determines the hotspot number it belongs to. 255 (white) means
'no hotspot'.

(8) Support for Java Media Framework (JMF) added. Many media
formats can be displayed: avi-video, linear quicktime video,
flash 2, mpeg1/2/3, many soundformats etc. See www.javasoft.com
for supported media types and the documentation of
PTViewer for details of the implementation. This feature
requires JMF to be installed on the host computer. JMF
runs on any java 1.1 platform and can be obtained at
<http://java.sun.com/products/java-media/jmf/2.0/download.html>
JMF-media are silently ignored if JMF is not present.

(9) Many scripting commands added, see list in documentation.

(10) Many minor bug fixes: MoveFromTo() stops now reliably,
setting the waittime properly handles animated gifs, etc.

Changes to v1.0

(1) Partial panoramas supported (FOV < 360°).

(2) Configurable Controls built into the Applet. VR-tours
without html-browser are feasible using any appletplayer.
See the docs for details of the implementation.

(3) Compass image can be loaded which is rotated
according to current pan angle.

(4) Static hotspots added (like clickable image maps
in html).

(5) Three examples added: SimplePano.html using
no scripting, Controls.html using configurable
controls, and ScriptedPano.html using Javascript.

(6) Double buffering implemented which eliminates
flicker of hotspotimages. Slight speed penalty (~3%).

(7) Viewer window can be smaller than appletwindow, and
offset.

(8) Wait image not scaled. Displayed centered in window.

(10)frame can be any size, and is aligned to lower right
corner of applet window.

(11)Waitimage and frame image need not be reloaded for
new panoramas.

(12) Minimum time for display of wait image settable.

(13) Maximum frame rate for autopan functions set to 25fps.

Changes to Version 0.9

(1) Speed increase by 15%, close to LivePicture applet.

(2) Navigation with mouse uses progressive response function.

(3) Navigation is much smoother now (minimum pan increment
divided by 4 compared to version 0.9)

(4) Rectangular hotspots supported. There are now three ways
to define a hotspot area: default square, custom rectangle, and
arbitrary shape defined by mask.

(4) Restarting the stopped applet doesn't reload images.

(5) The html-example file in the distribution had some errors
which are correrted now.

(6) Bug-fixes: wait image can be displayed when new panoramas
are loaded.

(7) Some more minor bug-fixes.

Changes to version 0.8:

o Hotspots can be any size and shape using a mask, see the
streetlight in the example.

o Hotspot images can popup, see the same example.

o Download feedback: Supplying the filesize of the panorama in a
parameter tag enables the browser's document download feedback in the
status line.

o New panoramas can be loaded in running applet; all parameters
including hotspots can be reset too.

o New scripting options: move from point to point, get and
set parameters like autopanning etc, more.

o An overlay image (eg frame) can be loaded in front of the viewer
window. This must be a partially transparent gif.

o Hotspots can be defined in separate tags for each hotspot
(hotspot0, hotspot1,...). The previous method (defining all
hotspots in a single tag) is also supported.

o User defined javascript functions can be called by the applet
whenever the mouse enters or leaves a hotspot. (Netscape only)

o User defined javascript functions can be called by the applet
whenever the view (pan,tilt or field of view) changes. This enables
the user to implement a compass or navigation map, directional sound
and many other neat things. (Netscape only)

o Many bugfixes: No vertical tilt maximum when tilt minimum is set,
applet works when zooming disabled (fovmax = fovmin),
applet is stopped properly, etc.

o Math is optimized with 20% speed increase.

Changes to version 0.7:

1. Slow image download in IE/win fixed.

2. New scripting options: contineous pan/tilt/zoom, more see Readme.

3. Targets can be set in URLs for hotspots.

4. Some authoring helpers added: display mouse coordinates (Hotspots)
and pan/tilt/zoom angles.

5. Andrei's control buttons for scripting the applet are
included, see example.

Changes to version 0.6:

1. No more memory limits for panoramic images in java-viewers.
I found a simple trick to load any sized image, even into Netscape,
without tiling. For an example, see the virtual tour of Marburg
<http://www.fh-furtwangen.de/~dersch/Marburg/MarburgPTVJ.html>
with 2400 x 1200 sized panos.

2. Significant speed increase, 3 times the previous version.
LP is still about 40% faster, however, with lower image quality and
some annoying bugs.

3. Autorotation added.

4. Applet can be scripted by the html-document. All keyboard
controls are accessible, as well as jumping to specific
locations. See the included example-panorama and check the
buttons in the document.

5. Java code rewritten to fit into one class file, which
is included in the distribution. This can be used for
browsers that don't understand jar-files.

6. Fixed several memory leaks.

7. The setCursor() exception thrown by some browsers
is caught, and doesn't lead to error conditions.

8. Panning is disabled again if mouse is outside
window. This fixes some problems when several panos
are in one page.

Changes to version 0.5:

- Zoom limits settable
- Color of Hotspotmarker settable.
- Optional Hotspot images loadable, see butterfly
in example panorama. These
are displayed inside the viewer window
when hotspots are activated.
- Hotspots can now be set in relative
coordinates so that the same html-file
works for differently sized versions of the
same panorama. The previous pixelcoodinates
method still works.
- Optional image for display during
download.
- Math reworked, 30% faster.
- Fixed some rounding errors which caused
slight misplacement of bilinear and
nearest neighbor rendered image.
- Draging the mouse is now tracked outside
the viewer window.
- Speed of panning and tilting reduced.
- More keyboard keys can be used for navigating.

Changes to version 0.4.3
- Hospot facility added
- size reduced (7kByte), speed increased
- cylindrical format supported
- initial parameters for field of view, tilt, pan settable
- tilt limits settable
- keyboard navigation added

Changes to version 0.4.1/2
- Speed increased by a factor of 3
- Added high quality bilinear interpolation

Changes to version 0.4:

- Force IE to display image at startup.
- inserted garbage collection calls to avoid
occasional hanging.

Copyright © 2000 H. Dersch