All brands and product names are trademarks orregistered trademarks of the respective producers.
FSI Viewer,FSIServer andNeptuneLabs are registered trademarks of NeptuneLabs GmbH, Germany.
February 2017
17.02
17.02
17.02
17.02
17.02
055
Table of Contents
1 Introduction
2 FSI ViewerJS
2.1 How it works
2.2 Using FSIViewer JS
2.2.1 The Menu Bar
2.2.2 Mouse Modes
2.2.3 Additional Buttons
2.2.4 Using the navigator window
2.3 Index structure of FSI Viewer JS
2.4 Configuration
2.4.1 Using XML Configuration Files (*.xml)
2.4.2 Hierarchy of Configuration Parameters
2.4.3 Retrieving Parameters from FSIServer
2.4.4 Using Custom Language Files
2.4.5 Enabling the Debug Mode
2.5 FSI Viewer JS Parameters
2.5.1 Global Parameters for Hot Spots
2.5.2 <camera> Section
2.5.3 <virtualSpace> Section
2.5.4 <hotspots3d> Section
2.5.5 <video> Section
2.5.6 Plugin Parameters
2.6 Creating and using Spin Videos
2.7 Embedding the viewer at runtime via JavaScript
A Escaping or URL-encoding parameter values
B HTML Tags available in FSI Viewer
C Example of a _default.xml file for FSIViewer Flash
D Example of an image specific FSI configuration file
E Example of a FSIViewer JS skin css file
13 Appendix
F Escaping or URL-encoding parameter values
G HTML Tags available in FSI Viewer
H Example of a custom skin CSS file
Index
506
506
506
507
507
508
508
508
509
509
515
1 Introduction
1 Introduction
The JavaScript based viewers FSIViewer JS, FSITouchZoom, FSI QuickZoom,
FSIShowcase JS and FSIImageFlow bring outstanding zoom qualities to almost all
devices. They are highlycustomizable and work independently fromFSIViewer Flash.
FSI ViewerFlash and its Add-ons FSI Pages and FSI Showcase are based on Adobe
Flash and have been designed to display high resolution images on the internet
requiring low bandwidth only.
FSIServer is the basis of all viewers which request the image data from it. By using
FSIServer, only one high resolution source image is required for each image to be
displayed.
Thank you for using NeptuneLabs software!
www.neptunelabs.com
Visit
www.neptunelabs.com
and downloads.
: Online Resources for FSI Viewer
for software updates, regularly updated samples, tutorials
NeptuneLabs - FSIViewer8
2 FSI ViewerJS
2 FSI ViewerJS
FSI Viewer JS is a JavaScript based tool to display 2D image zoom and 360° Object spins
on desktop computers and mobile devices. Depending on the device capabilities it offers
in place zoom or pinch zoom support. FSIViewer JS also supports optional multiple axis
spin.
Using an optional video, the rotation ofthe 360° object can be displayed extremely
smooth on devices that support video capturing.
Optional hot spots with HTML content can be added by providing 3Dcoordinates (x,y,z)
in millimeters.
Imaging Servers
FSI products covered by this manual can at present securely be run with FSI Server
from version 2016.
Supported devices
l iOS 4 or higher
l Android 4.xbased devices
l Windows Phone 8 and Windows RT devices
l Windows 8 with touch enabled browsers
l Mouse zoom: desktop or laptop computers &all major browsers
Usage
I) add the fsiviewer.js script to the head of your document:
Adding the script
<head>
[…]
//adding the fsiviewer.js script
<script src="viewer/applications/viewer/js/fsiviewer.js"
type="text/javascript"></script>
</head>
II) Add a <fsi-viewer> tag to the part of your document body where the zoom and/or
the 360° product spin should be displayed. Add the desired dimension and the
imagesource/ directory to it:
//here you can place the fallback content in case the browser
// cannot display the viewer, e,g,:
<b>Sorry</b>, your browser is not capable of running FSI Viewer
JS
</fsi-viewer>
Parameters are added to the <fsi-viewer> tag. Note that you can as welluse FSI
Viewer configuration files (required when using hot spots):
Adding Parameters to the viewer
<head>
[…]
//adding the fsiviewer.js script
<script src="js/fsiviewer.js"type="text/javascript"></script>
</head>
<body>
[…]
//Adding parameters directly to the tag:
<fsi-viewer width="500" height="600" src="/images/sample.jpg"
debug="true" skin="silver">
</fsi-viewer>
//Example with using a FSIViewer configuration file:
<fsi-viewer width="500" height="600" src="/images/sample.jpg"
cfg="sample/sample_configuration">
</fsi-viewer>
2.1 How it works
The script uses the given <fsi-viewer> tag, which is similar to an <img> tag, to
display a single image zoom and/or 360° object spin.
If a video has been defined, the script captures video frames on start to provide an
ultra smooth rotation.
11NeptuneLabs - FSIViewer
33,3%
Viewer
360°
2 FSI ViewerJS
Without a video (or on devices not supporting video capturing) a fixed number of
images from different viewing angels willbe used to display the object spin.
The user can drag the image left and right to spin and zoom in/out either using
pinch zoom or by clicking on the object.
Note on Internet Explorer:
In order to make FSI Viewer JS work,Internet Explorer must run in IE8 quirks, IE9 or
higher quirks or standards mode. You can ensure that by adding an X- UACompatible meta tag to the head section of your web page, for example:
FSI Viewer JSis navigated
by the menu bar (here
seen below the image)
and by using the mouse
directly on the image. For
example, you can select
a section of the image
you want to magnify.
The mouse functions are
determinedbythe
corresponding buttons
on the menu bar (zoom,
pan, rotate, etc.).
Theoptionalsmall
navigatorwindow
(bottom right) displays the position of the image section currently viewed.
NeptuneLabs - FSIViewer12
2 FSI ViewerJS
100%
Viewer
360°
2.2.1 The Menu Bar
Main Functions
The menu bar might look different depending on skins or
additional plugins.
Back to Initial View.
Undoes zoom, pan and rotation and restores the initialview.
(identical with pressing space bar)
Zoom In
Zoom Out
2.2.2 Mouse Modes
The
→ Mousemodesor→ MousemodeSelect
following mouse mode buttons.
13NeptuneLabs - FSIViewer
plug-in is required to display the
360°
Viewer
2 FSI ViewerJS
Mouse - Zoom In
Choose this function to enlarge segments using the mouse. Click on
the image and drag the frame over the desired segment.
Alternativelyyou can clickon the image, without marking a
segment. The image willthen be magnified in steps. To zoom out in
steps, hold down the CTRL-key and click on the image.
Mouse - Pan
Choose this function to pan the image using the mouse. Click on the
image and drag in the desired direction. To return to the original
view, hold down the CTRL-keyand click on the image.
Mouse - Turn
Choose this function to rotate the image around the z-axis. Click on
the image and drag in whatever direction you want to turn the
object (to the right or the left).To reset the rotation, hold down
the CTRL-key and click on the image.
Mouse - Rotate (only for 360° presentations)
Choose this function to rotate the object around the y-axis or the
x-axis if available. Clickon the image and drag to the left or to the
right. Move the mouse up or down to rotate the object around the
x-axis. To reset rotation, hold down the CTRL-keyand clickon the
image.
2.2.3 Additional Buttons
Hide /Display menu
Displays or hides the user interface.
Information
Displays information about the viewer (optional,can be hidden by
altering the skin CSS)
NeptuneLabs - FSIViewer14
2 FSI ViewerJS
15%
2.2.4 Using the navigator window
In the navigator window you can see a miniature presentation
of the entire image. The segment which is currently viewed is
framed. In the navigator window you can change the current
segment either by dragging the frame or by clicking on the
desired area of the image.
2.3 Index structure of FSI Viewer JS
The index structure of the JS viewers as found in WEBAPPS/fsi/viewer/:
DirectoryContent Description
applications contains the .js scripts for the according viewers
configcontains the configuration files
languagesUser interface language files
pluginsFSI Plug-ins extending FSI Viewer at runtime
skinsFSI Skins containing the visible parts of the user interface
Please Note: You need to make sure that your web server properly serves files with
the following extensions: *.js, *.xml
2.4 Configuration
2.4.1 Using XML Configuration Files (*.xml)
FSI Viewer JS uses XML configuration files which can easily be edited with any
text editor.
The default configuration file "_ default.xml" - which is located in
WEBAPPS/fsi/viewer/ is the most important XML configuration file and will
always be evaluated first.
To use FSI Viewer with additional configuration files you have to place the file in
the WEBAPPS/fsi/viewer/config/ folder and provide the name of the
configuration file using the "cfg"parameter in the code:
15NeptuneLabs - FSIViewer
2 FSI ViewerJS
Using FSI Viewer Configuration Files
<head>
[…]
//adding the fsiviewer.js script
<script src="js/fsiviewer.js"
type="text/javascript"></script>
</head>
<body>
[…]
//Example with using a FSI Viewer configuration file:
<fsi-viewer width="500" height="600"
src="/images/sample.jpg" cfg="sample/sample_configuration">
</fsi-viewer>
Configuration files are structured into configuration groups (XML nodes)
containing parameter names and values. Only parameters in these groups will
be recognized by FSI Viewer. Configuration files do not need to contain all
groups though. Each parameter has to be provided as an individual XML child
node of a group where the node name is the parameter name and the
parameter value needs to be provided as "value"attribute of the node.
Please keep in mindthe following rules when using XML configuration files:
l attribute values must be provided in double quotes
l the last occurrence of a given parameter will be used
l configuration files might be cached byyour browser, so that changes in
these files require flushing the browser cache. This does not apply
when using the debug mode.
l make sure to save configuration files in UTF- 8 format if your
configuration file contains language specific diacritics, Japanese
characters and alike
You can comment on or disable sections of an XML configuration file using the
usual XMLcomment syntax:
Comments and disabling parameters temporarily
<image>
<!—- This is a comment -->
<path value="image.tif" />
<!-- The following section will be ignored -->
<!-<path value="anotherimage.tif" />
-->
</image>
2.4.2 Hierarchy of Configuration Parameters
As explained before parameters can be provided in two different ways:
1.The default configuration file "_ default.xml" - located in
WEBAPPS/fsi/viewer/ - willalways be evaluated first
17NeptuneLabs - FSIViewer
2 FSI ViewerJS
2. You can store image specific parameters in additional *.xmlfiles in
WEBAPPS/fsi/viewer/config/
Parameters specified in multiple ways – for example in the default configuration
and by custom configuration files– willbe evaluated in the following way:
l Parameters defined in configuration files override parameters
defined inthe default configuration file "_default.xml".
The list below shows the hierarchy resulting from the sequential
evaluation ofthe different configuration methods:
Configuration Hierarchy
1. Configuration file (*.xml)
2. Default configuration file (_default.xml)
Choosing the adequate Configuration Method
So far you learned that FSI Viewer JS can be configured by any
combination of:
l The default configuration file (_default.xml)
l Additional configuration files (*.xml)
These configuration options are not only alternate methods. Combining
these methods offers the possibility to provide configuration parameters
as easily as possible and as dynamically as required. The following
considerations might be helpful when deciding which method to choose for
a certain parameter.
Default Configuration
You can easily change global parameters that apply to all FSI Viewer instances
by editing a single file. This is therefore the recommended configuration
method for:
General configuration options like:
l Skin
l Language
l MenuAlign, AnimationSpeed and alike
Configuration Files
Separate configuration files should be used for parameters specific to a group
of images or a specific way to display images. You might for example want to
setup individual configuration files for different types of FSI Viewer JSinstances,
like "small_no_interface. xml", "large_with_hotspots.xml" as an example.
NeptuneLabs - FSIViewer18
2 FSI ViewerJS
Usually you don‘t need to create a configuration file for individual images, as you
can specify the image path or other unique parameters dynamicallyin the code.
2.4.3 Retrieving Parameters from FSIServer
FSI Viewer JS is capable of retrieving image specific parameters from FSI Server
dynamically. This way you do not need to define these parameters explicitly.
The list below shows some typical parameters that can be retrieved from FSI
Server automatically:
In which case will these values be retrieved automatically?
FSI ViewerJS tries to retrieve the parameters ImageWidth and ImageHeight
from the server if one of these values has not been defined manually. If the
server delivers additional parameters (e.g. ImageTilesX, ImageTilesY) these
parameters willonly have an effect if they have not been defined manually.
l ImageWidth
l ImageHeight
l ImageTilesX
l ImageTilesY
l SceneSets
l Image Collections
l Hyperlinks
l Hotspots
2.4.4 Using Custom Language Files
In case you want to edit tool tips for existing languages or add support for
additional languages you can edit or create language files in the subdirectory
"/languages" of your FSI Viewer setup directory.
Each language file contains a list of phrases used in FSI ViewerJS user
interface.The language files are XML files and need to be saved inUTF-8 format.
The attribute "id" specifies the context of each phrase. Please note that you
need to use XML entities for characters not allowed in XML files, like e.g.
&for "&"
<for "<"
>for ">"
"for "
'for ‚
You can use basic HTML-tags to apply text formatting to the tool tips.
You can duplicate existing language files or create new files as needed.
To use custom language files, please use the "language" parameter and set
the parameter value to the filename without the ".xml" extension.
2.4.5 Enabling the Debug Mode
The debug mode can be enabled or disabled by passing the "Debug" parameter
either in the code snip or inan XML configuration file.
Please use "debug=1" or "debug=true" to enable the debug mode and
"debug=0" (or omit the debug parameter) to disable the debug mode. To
disable the debug mode permanently you can safely delete the "/debug"
directory ofyour FSI setup directory.
Example:
If FSI Viewer JS does not work or look as expected in an HTML page you can
quickly debug FSI Viewer as follows:
l Open the HTMLpage containg FSIViewer JS
l Open the"Inspect Element" feature of your browser
l in the "Console" part you can now check if everything is implemented
and loaded correctly
2.5 FSI Viewer JS Parameters
You can optionally modify the way FSI Viewer JS works by passing parameters to
the script. To do so, pass an object containing the parameters and value as an
NeptuneLabs - FSIViewer20
2 FSI ViewerJS
object to the constructor:
Example:
<head>
[…]
//adding the fsiviewer.js script
<script src="js/fsiviewer.js" type="text/javascript"></script>
</head>
<body>
[…]
//Adding parameters directly to the tag:
<fsi-viewer width="500" height="600" src="/images/sample.jpg"
debug="true" skin="silver">
</fsi-viewer>
debug
Description
SyntaxBoolean
Defaultfalse
ContextFSI Viewer JS
Displaydebug and status information inthe browser's JavaScript console.
headers
Description
SyntaxString
Default"cors"
ContextFSI Viewer JS
The "&headers=" parameter to use for image requests.
The default value "cors" ensures cors compatibilityfor cross-origin scenarios.
21NeptuneLabs - FSIViewer
display debug and status information in the JavaScript
console
display debug and status information in the JavaScript
console
2 FSI ViewerJS
autoSpinSpeed
DescriptionTime in seconds for a fullrotation
Syntaxfloat
Default-
ContextFSI Viewer JS
Time in seconds for a fullrotation. Negative values reverse spin direction.
cfg
Descriptionrelative path to an XMLconfiguration file in FSI Viewer format
SyntaxString
Default""
ContextFSI Viewer JS
The relative path to an XMLconfiguration file in FSI Viewer format.
When using a relative path the location specified by the FSI Viewer "FSIBase"
parameter willbe used, which is [viewer]/config/ by default.
hideUI
Descriptionhides the user interface
Syntaxstring
Defaultfalse
ContextFSI Viewer JS
Hides or displays the user interface.
Possible values:
true
false
onMobileDevices:UI is hidden on mobile devices
ifNoInPlaceZoom:UI is hidden if in place zoom is deactivated
NeptuneLabs - FSIViewer22
2 FSI ViewerJS
noNav
Descriptionhides the navigation window
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Hides or displays the navigation window.
autoHideNav
Descriptionautomaticallyhides the navigation window
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Hides or displays the navigation window automaticallyif the magnification is at
minimum.
navWidth
Descriptiondefines the width of the navigation frame
SyntaxString
Default"120"
ContextFSI Viewer JS
Defines the width ofthe navigation frame displayed in the right corner on the
bottom.
navHeight
Descriptiondefines the height of the navigation frame
SyntaxString
Default"120"
ContextFSI Viewer JS
23NeptuneLabs - FSIViewer
2 FSI ViewerJS
Defines the height of the navigation frame diplayed in the right corner on the
bottom.
progressBarWidth
Descriptiondefines the width of the progress bar
Syntaxfloat
Default35
ContextFSI Viewer JS
Defines the width ofthe progress bar inpercent of the viewport width.
progressBarHeight
Descriptiondefines the height of the progress bar
Syntaxfloat
Default14
ContextFSI Viewer JS
Defines the height of the progress bar in pixel.
progressBarHAlign
Descriptiondefines the horizontal position of the progress bar
Syntaxstring
Default"center"
ContextFSI Viewer JS
Defines the horizontal position of the progress bar, possible values: left, center,
right.
NeptuneLabs - FSIViewer24
2 FSI ViewerJS
progressBarVAlign
Descriptiondefines the vertical position ofthe progress bar
Syntaxstring
Default"bottom"
ContextFSI Viewer JS
Defines the horizontal position of the progress bar, possible values: top, middle(or
center), bottom.
urlLoadingAnimation
Descriptiondefines the loading animation shown
Syntaxstring
Default"/skins/resources/loading.svg"
ContextFSI Viewer JS
Defines the loading animation shown. Custom animations can be placed here:
/skins/resources/. Setting the parameter to "false" discards the display.
skin
Descriptiondefines the skin to display
Syntaxstring
Default"black"
ContextFSI Viewer JS
Defines the skin which will be displayed. FSIViewer JS comes with three default
skins, "black", "white" and "silver".
Skins are defined via CSSand can be found here: WEBAPPS/fsi/viewer/skins.
It is also possible to alter existing skins or to define custom skins in this location.
In order to use a custom skin, the easiest way would be to duplicate one of the
default skin CSS files and adapt them to your liking. make sure to use a custom class
in front af ALL classes defined in the custom CSS,, otherwise you will break other
skins on the same HTML document.
25NeptuneLabs - FSIViewer
2 FSI ViewerJS
General appearance CSSrules, which are valid on an overall level, (e.g. the logo
container, height of the menubar, etc.) are defined in the corresponding core CSS
files, which can be found in WEBAPPS/fsi/viewer/skins/resources. (fsi-core.css, fsiviewer-core.css)
IMPORTANT:Never change the classes of the core CSS in the core files
directly. If you would like to adapt the CSS rules listed there, please
overwrite them in a custom skin file or in the HTMLdocument instead.
You can find detailed tutorials for changing the appearance of the skin in the
support section ofour website
For a detailed example of a basic custom skin,please go to
skin CSS file"
enableZoom
Descriptionenable the user to zoom in and out
SyntaxBoolean
Defaulttrue
ContextFSI Viewer JS
Enable the user to zoom inand out.
On touch enabled devicesthe zoom is based on the native pinch zoom gesture. On
non touch enabled devices, in place zoom by clicking the object or dragging
up/down willbe enabled instead. Alternatively,the menu bar can be used for
zooming.
.
.
→ "Example of a custom
desktopClickZoomScale
Descriptionthe magnification levelto use when clickingthe object
SyntaxFloat
Default3
ContextFSI Viewer JS
For desktop browsers only.The magnification level to use when clicking the object.
NeptuneLabs - FSIViewer26
2 FSI ViewerJS
dir
Descriptionpath to the source images for the object spin on FSI Server
SyntaxString
Default""
ContextFSI Viewer JS
The path to the source images for the object spin on FSI Server.
The viewer willload the list ofimages from the given directory.
imagesrc
Descriptionpath to the single images used for FSI Viewer JS
SyntaxString
Default""
ContextFSI Viewer JS
Defines the path to single images used for FSI Viewer JS.
imagesources
Descriptionpaths to single images used for FSI Viewer JS
SyntaxString
Default""
ContextFSI Viewer JS
Defines the paths to single images used for FSI Viewer JS. Example: "dir1/1.jpeg,
dir1/2.jpeg, dir2/1.jpeg,..."
27NeptuneLabs - FSIViewer
2 FSI ViewerJS
backgroundColor
Descriptionthe background color to use
Syntax6-digit hex-color
Default#FFFFF
ContextFSI Viewer JS
The background color to use. The color should match the video's or image's
background color (usuallywhite or black).
mouseSensitivity
Descriptionsensitivity ofthe mouse movement when rotating the object
Syntaxfloat
Default1.0
ContextFSI Viewer JS
Sensitivity of the mouse (finger) movement when rotating the object.
pellets
Descriptionviewer draws optionallysmall dots on the video
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
When using a spin video you can optionallyhave the viewer draw small dots on the
video. This improves the visual impression of the video in higher resolutions.
NeptuneLabs - FSIViewer28
2 FSI ViewerJS
pelletsOpacity
Descriptiondefines opacity of the dots ("pellets") drawn on the video
Syntaxfloat
Default0.09
ContextFSI Viewer JS
Opacity of the dots ("pellets") drawn on the video, if the pellets parameter is
enabled.
drawCube
Description
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Draws a 3D cube wireframe representing the object space of the spin as defined by
the "virtualSpace" parameters.
The drawCube option can be useful to validate the "virtualSpace" parameters.
This option only works on desktop computers using the HTML canvas
element.
drawTable
Descriptiondraws a virtual rotating table plate
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Draws a virtual rotating table plate. This option only works on desktop
computers using the HTML canvas element.
draws a 3D cube wireframe representing the spin object
space
29NeptuneLabs - FSIViewer
2 FSI ViewerJS
tableDiameter
Descriptiondefines diameter of virtual rotating table plate
SyntaxFloat
Default950
ContextFSI Viewer JS
Defines the diameter of the virtual rotating table plate in mm. This option only
works on desktop computers using the HTML canvas element.
drawGroundPlate
Descriptiondraws a virtual ground plate
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Draws a virtual ground plate.
This option only works on desktop computers using the HTML canvas
element.
effects
Description:Image manipulation parameters for allimages
Syntax:String
Default:—
Context:FSI Viewer JS
The effects parameter can be used to pass image manipulation parameters to the
imaging server. Typical manipulation parameters include the image saturation
("saturation") and image sharpening ("sharpen"). If no effect is specified, the
default settings of the server (profile) apply.
Please refer to your FSI Server documentation for a list of available effect
parameters.
NeptuneLabs - FSIViewer30
2 FSI ViewerJS
initialView
Descriptiondefines the initialimage segment
SyntaxString
Default""
ContextFSI Viewer JS
Image section (and rotation) to displayon startup.
The first two parameters are required as they specifythe scene set and the scene.
For 2D images both values default to 1.
initialViewPersistent
DescriptionKeep the InitialView as default view
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
If this parameter is activated, clicking the "Reset" button will display the image
section defined by the InitialView parameter instead of the entire image. If this
parameter is set to "false", the initial view will be displayed on startup, but pressing
the Reset button willreset the view to the entire image.
showPreviewWhileLoading
Descriptionshows/hides preview images for spins while loading
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
If this parameter is set to false, the preview images which are shown while the spin
is loaded are hidden.
31NeptuneLabs - FSIViewer
2 FSI ViewerJS
spinPreviewWhileLoading
Descriptionshows/hides preview images for spins while loading
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
If this parameter is set to false,a static image will be showninsted of the spin while
loading. If initialView is defined, the image defined there willbe shown.
showProgressbar
Descriptionshows/hides progess bar while loading
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
If this parameter is set to false, the progress bar which isshown while the spin is
loaded is hidden.
panLimits
Descriptiondeterrmines how far the user is allowed to pan
SyntaxString
Default"strict"
ContextFSI Viewer JS
Determines how far the user is allowed to pan. Possible settings are:. "loose",
"medium", "strict"
NeptuneLabs - FSIViewer32
2 FSI ViewerJS
preventImageTransparency
Descriptionprevents the image transparency
SyntaxBoolean
Defaultfalse
ContextFSI Viewer JS
Prevents using the image transparency if a transparency channel exists.
useDevicePixelRatio
DescriptionUse the device's pixelratio to displayeven sharper images.
SyntaxBoolean
Defaulttrue
ContextFSI Viewer JS
Use the device's pixelratio to automatically display even sharper images.
adaptiveUISize
Descriptiondetermines ifinterface scales according to the zoom level .
SyntaxBoolean
Defaulttrue
ContextFSI Viewer JS
When set to true, the interface scales according to the zoom level.
inPlaceZoom
Descriptionactivates zooming in the FSIViewerJSinstance
Syntaxstring
Default"true"
ContextFSI Viewer JS
33NeptuneLabs - FSIViewer
2 FSI ViewerJS
The parameter defines if in- place-zoom (zooming directly in the FSIViewer JS
instance)is activated.
Possible values:
true
false
auto:in-place-zoom is activated, but not on mobile devices
documentZoom
Descriptionallows pinch-zoom on FSIVIewer JSinstance
Syntaxstring
Default"auto"
ContextFSI Viewer JS
Activates pinch document zoom on FSIViewer instance.
Possible values:
true
false
auto:
pinch document zoom is activated on all touch-enabled
devices
autoDisablePointerActions
Descriptiondisables events ifviewer is larger than viewport
SyntaxBoolean
Defaulttrue
ContextFSI Viewer JS
Disables mouse and touch events if viewer's height OR width is larger than the
viewport width or height.
NeptuneLabs - FSIViewer34
2 FSI ViewerJS
loadExactPreviewImagesAfterResize
Description
SyntaxBoolean
Default"true"
ContextFSI Viewer JS
Reload images inthe new required resolution after a resize event.
maxZoom
Descriptiondefines the maximum magnification level
SyntaxFloat
Default100
ContextFSI Viewer JS
Defines the maximum magnification level.
minInstanceSize
Descriptiondefines the minimuminstance size
SyntaxInteger
Default60
ContextFSI Viewer JS
Reload images inthe new required resolution after a resize
event
Defines the minimum instance size of the viewer.
35NeptuneLabs - FSIViewer
initialMouseMode
DescriptionMouse mode on startup
SyntaxString
Default"auto"
ContextFSI Viewer JS
Specifies the selected mouse mode on startup.
Possible values:
0:(Zoom)
1:(Pan)
2:(Spin 360°)
menuButtonOrder
Descriptiondefines the button order of the menu bar buttons
SyntaxString
Default-
ContextFSI Viewer JS
2 FSI ViewerJS
Defines the button order of the menu bar buttons. The buttons need to be listed in
a string with the corrsponding button IDs.
Automaticallydestroy instances created with the fsi-viewer tag upon removing the
tag from the document DOM.
spinDirectionImage
Descriptiondefines direction of rotation
SyntaxString
Default"left"
ContextFSI Viewer JS
Specifies the direction of the spin rotation.
SceneSets
DescriptionScene sequence definition
SyntaxString
Default1 – n tiles
ContextFSI Viewer JS
Defines the minimum instance size of the viewer.
Using this parameter you can define scene sets for 360° views. Scene sets define
the order of scenes to be displayed.
The default is a single scene set containing all scenes (image tiles) from scene 1 to
the last scene image. The default sequence is left to right, top to bottom in a tile
image and the sequence of the <image> nodes for 360° views based on individual
source images.
In the viewer scenes can be selected by moving the mouse horizontallyand scene
sets can be selected by moving the mouse vertically.
Syntax:
Individual sets have to be separated with ";" (semicolon).
Scenes within the sets are separated with "," (comma) and specify the 1-based
index ofthe image from left to right, top to bottom up to the total number of scenes
(TilesX x TilesY or individual source images).
Instead of individual scenes you can also specifyscene ranges, e.g."5-10".
If you leave out the start or the end of a scene range, 1 or respectively the last
scene willbe assumed in this case. Ifyou specifya range using "->" the scenes from
37NeptuneLabs - FSIViewer
2 FSI ViewerJS
the first number to the last scene image plus the first scene image up to the second
number willbe assumed.
Example:
SceneSets="1-12;13-24;25-36;37-48"
reverseSceneSets
Descriptionreverses the Scene Sets
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
Reverses the order of the Scene Sets.
NoSetLoop
DescriptionNo 360° rotation around the y-axis
SyntaxBoolean
Defaultfalse
ContextFSI Viewer JS
The first and the last scene set will be considered ending points. (E.g. for partial
rotations < 360°).
Please note: The blur animation is turned offif NoSetLoop is activated.
NoSceneLoop
DescriptionNo 360° rotation around the x-axis
SyntaxBoolean
Defaultfalse
ContextFSI Viewer JS
The first and last scene in the each scene set willbe considered ending points. (E.g.
for partial rotations < 360°).
Please note: The blur animation is turned offif NoSceneLoop is activated.
NeptuneLabs - FSIViewer38
2 FSI ViewerJS
2.5.1 Global Parameters for Hot Spots
enableHotspots
Descriptionenables or disables hot spots
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
You can set this value to false if hot spots have been defined, but shall not be
displayed.
hotspotCallbackFunction
Descriptioncallback function for hot spots
Syntaxstring/ function
Default""
ContextFSI Viewer JS
The name of a custom JavaScript callback function in window scope to calleach
time a hot spot mouse action occurs.
Alternativelyyou can pass the function directly as a JavaScript parameter.
Example of a callback function prototype:
Callback Function Prototype
function onFSIViewerHSAction(strAction, viewer, idViewer,
idHotspot, node, param, angle)
{
if (strAction == "click")
{
alert("clicked on hot spot " + idHotspot);
}
}
39NeptuneLabs - FSIViewer
AttributeDescription
2 FSI ViewerJS
action
viewer
idViewer
idHotspot
node
param
angle
hotspotLineColor1
Descriptionlighter color ofthe hot spot marker lines
Syntax6-digit hex color
Default#FFFF00
ContextFSI Viewer JS
The lighter color of the hot spot marker lines.
a string representing the action "mouseover",
"mouseout", "mousedown" or "click"
the FSI Viewer JS viewer instance calling the method
the value of the "id"attribute of the viewer's <div> tag
the 0-based id ofthe hotspot
the <div> node containing the hot spot content
the content of the "actionParameter" parameter of the
hot spot
the hot spot's perimeterAngle value (the angle at which
it's visible best)
hotspotLineColor2
Descriptiondarker color of the hot spot marker lines
Syntax6-digit hex color
Default#000000
ContextFSI Viewer JS
The darker color ofthe hot spot marker lines.
NeptuneLabs - FSIViewer40
2 FSI ViewerJS
hotspotDotColor1
Descriptionlighter color ofthe hot spot marker lines
Syntax6-digit hex color
Default#FFFF00
ContextFSI Viewer JS
The lighter color of the hot spot marker circle's gradient.
hotspotDotColor2
Descriptiondarker color of the hot spot marker lines
Syntax6-digit hex color
Default#000000
ContextFSI Viewer JS
The darker color ofthe hot spot marker circle's gradient
decodeHTMLEntitiesInHotSpotTexts
Descriptionenables html entities in the hotspots text
Syntax6-digit hex color
Default#000000
ContextFSI Viewer JS
When enabled, basic HTML entities willbe enabled in the hotspot text.
hotspotDotRadius
Descriptionradius of the hot spot marker circle in px
Syntaxfloat
Default4.0
ContextFSI Viewer JS
The radius ofthe hot spot marker circle in px.
41NeptuneLabs - FSIViewer
2 FSI ViewerJS
2.5.2 <camera> Section
The camera section contains parameters describing the technical
specifications and the position of the camera when shooting the 360° spin.
You only need to specify these values if you are using the virtual
space, e.g. for hot spots.
For 2D zoom and spins without hot spots you can omit this
parameter group.
digitalCropFactor
Description
Syntaxfloat
Default1.0
ContextFSI Viewer JS
The value depends on the size ofthe optical sensor chip ofthe camera.
For full frame cameras the value is "1.0". Common values are between 1.5 to
1.6. The crop factor is the same factor that affects the focal length of your
camera's objective. E.g. the focal length of an objective with a full frame camera
is 50mm. With a camera that has a crop factor of 1.5 the effective focal length
would be 1.5 x 50mm = 75mm.
Please note that for an accurate calculation the rounded figure (e.g. 1.5) is not
precise enough, since two to four decimal places are required.
In order to ensure an exact smooth video and hotspot implementation, please
do the following calculation for specific sensor dimensions of the camera used.
The size of the optical sensor chip can be found in the cameras technical
specifications.
depends on the size of the optical sensor chip ofthe
camera
NeptuneLabs - FSIViewer42
2 FSI ViewerJS
36² + 24²
x² + y²
= digitalCropFactor
36² + 24² = Reference value
(35mm “full frame” format; 36mm x 24mm,
crop factor: 1.0)
x² + y² = Sensor dimensions of your camera
(width and height)
36² + 24²
22.3² + 14.9²
=
1.6132
Please find below the calculation for a Canon 7D camera (which has the sensor
dimensions of 22.3mm x14.9mm) as an example:
focalLength
Descriptionfocal length of the camera objective
Syntaxfloat (inmm)
Default50
ContextFSI Viewer JS
The focal length of the camera objective.
43NeptuneLabs - FSIViewer
image
plane
x
y
z
x
y
z
position(x,y,z)
targetPosition(x,y,z)
table center
2 FSI ViewerJS
position, targetPosition
Descriptiondefines the position of the camera and the object
Syntaxfloat (inmm)
Default
ContextFSI Viewer JS
postion (x,y,z) and targetPosition (x,y,z) can be used instead of
distanceToTableCenter, heightAboveTable and targetHeightOffset. (see
illustration below)
Explanation position(x,y,z)
xifimage plane is in line with table center, x is 0
yheight of the image plane inreference to the table center
zthe distance between image plane and table center
NeptuneLabs - FSIViewer44
2 FSI ViewerJS
Explanation targetPosition(x,y,z)
xiftarget is is in table center, x is 0
yheight of the target in reference to the table center
zthe distance between target and table center
distanceToTableCenter
Description
Syntaxfloat (inmm)
Default0
ContextFSI Viewer JS
The straight distance from the cameras image plane to the center of the turn
table in mm (see illustration below).
heightCamera
Descriptiondistance from image plane of the camera to the ground
Syntaxfloat (inmm)
Default0
ContextFSI Viewer JS
The straight distance from the optical center of your camera to the ground in
mm (see illustration below).
heightTable
Descriptiondistance from top of the turn table to the ground
Syntaxfloat (inmm)
Default0
ContextFSI Viewer JS
distance from cameras image plane to the center of the
turntable
45NeptuneLabs - FSIViewer
2 FSI ViewerJS
The straight distance from the top of the turn table to the ground in mm. (see
illustration below)
targetHeightOffset
Description
Syntaxfloat (inmm)
Default0
ContextFSI Viewer JS
The height of the camera target spot at the center of the turn table in mm.
If you vertically target the table center the value is 0.0 mm.
(see illustration below)
targetWidthOffset
Descriptionhorizontal offset of the camera target spot
Syntaxfloat (inmm)
Default0
ContextFSI Viewer JS
The horizontal offset of the camera target spot at the vertical the center of the
turn table related to the center of the turn table in mm. If you target the
horizontal table center (default) the value is 0.0 mm.
heightAboveTable
height of the camera target spot at the center of the
turntable
Descriptionheight of the image plane above the table
Syntaxfloat (inmm)
Default500
ContextFSI Viewer JS
Alternative parameter if heightCamera and heightTable are unkown. Onyl
applies ifboth parameters are undefined.
NeptuneLabs - FSIViewer46
2 FSI ViewerJS
d
h
1
h
T
image
plane
h
2
Camera Positioning Illustration
AttributeDescription
hTParameter: targetHeightOffset
h1Parameter: heightCamera
h2Parameter:heightTable
dParameter: distanceToTableCenter
Usage of Robotic Camera Arm for rotations around the x-axis
armLength
Descriptionlength of the robot arm
Syntaxfloat (inmm)
Default
ContextFSI Viewer JS
Defines the lenght of the robot arm; default value is the distance of the camera
to the camera target. Onlyrelevant ifhotspots are used.
47NeptuneLabs - FSIViewer
2 FSI ViewerJS
armJointPosition
Descriptionposition of the arm joint
Syntaxfloat (inmm)
Default
ContextFSI Viewer JS
Defines the position (x,y,z) of the robot arm joint; default value is equal to the
camera targetPostion. Only relevant if hotspots are used.
armAngleMeasureSetup
Descriptionangle where distance from camera to target is measured
Syntaxfloat (indegrees)
Default0
ContextFSI Viewer JS
Defines the anglefrom which distance from camera to target was measured.
Only relevant if hotspots are used.
armStartAngle
Descriptiondefines the start angle
Syntaxfloat (indegrees)
Default-90
ContextFSI Viewer JS
Defines the start angle of the rotation around the x- asis. Only relevant if
hotspots are used.
NeptuneLabs - FSIViewer48
2 FSI ViewerJS
armEndAngle
Descriptiondefines the end angle
Syntaxfloat (indegrees)
Default90
ContextFSI Viewer JS
Defines the end angle of the rotation around the x-axis. Only relevant if
hotspots are used.
2.5.3 <virtualSpace> Section
The virtualSpace section is optional and only required if you want to verify the
3D projections for use with hot spots. Using the camera parameters, the
viewer calculates the position of the hot spots based on the given 3D
coordinates only.
cubeSizeX, cubeSizeY and cubeSizeZ
Description
Syntaxfloat
Default-
ContextFSI Viewer JS
The "cube" is the bounding box ofthe spin object in millimeters.
cubeLineWidth
Descriptionline width ofthe cube
Syntaxfloat
Default-
ContextFSI Viewer JS
Line width ofthe drawn cube. Only applies if the parameter "drawCube" is
activated.
49NeptuneLabs - FSIViewer
"cube" is the bounding box of the spin object in
millimeters
2 FSI ViewerJS
baseRotationY, baseRotationX, baseRotationZ
Descriptionspecifies a rotation offset in degrees
Syntaxfloat
Default0
ContextFSI Viewer JS
You can specifya rotation offset in degrees.
This is required only, if you started the 360° shooting session at an angle other
than 0°.
rotationXRange, rotationYRange
Descriptionspecifies the range of the rotation
Syntaxfloat
Default180 (X) or 360 (Y)
ContextFSI Viewer JS
Specifies the range of the rotation of a certain axis.
shiftX, shiftY and shiftZ
Description
Syntaxfloat
Default-
ContextFSI Viewer JS
Optionallydefines an offset of the spin object on the turn table in mm.
NeptuneLabs - FSIViewer50
defines an offset of the spin object on the turn table in
mm
2 FSI ViewerJS
position
Description
Syntaxfloat
Default-
ContextFSI Viewer JS
Alternative parameter to shiftX,shiftY, shiftZ - positon (x,y,z) is optional and
defines an offset of the spin object on the turn table in mm.
defines an offset of the spin object on the turn table in
mm
2.5.4 <hotspots3d> Section
The hotspots3d section is optional and only required if you want to display hot
spots on your 360° object spin. Hot Spots consist of a marker line and a marker
dot as well as content area. The content area may contain all kind of HTML
content, e.g. formatted text, hyperlinks,images, videos and alike.
Each hotspot requires an individual hot spot definition node.
In addition a <defaults> node can be used to define default parameter values.
The x, y and z distance in mm on the real object measured from the center of
the object (usually equal to the center of the turn table).
Combined with the required <camera> parameters, the viewer calculates the
rotated and projected position of the hot spot on screen.
NeptuneLabs - FSIViewer52
x, y, z distance on the real object measured from center
of object
2 FSI ViewerJS
text
DescriptionHTMLcontent to display for this hot spot
Syntaxstring
Default""
ContextFSI Viewer JS
The HTML content to display for this hot spot.
Note that the value needs to be XML encoded if the content contains invalid
characters for XML attribute values (e.g. '&' for '&', '<' for '<','>' for '>'
and '"' for ").
horizontalMarkerSize
Descriptionlength of the horizontal line ofthe hot spot's marker
Syntaxinteger
Default30
ContextFSI Viewer JS
Length of the horizontal line of the hot spot's marker. Range: [-x ... 0 ... x]
verticalMarkerSize
Descriptionlength of the vertical line of the hot spot's marker
Syntaxinteger
Default100
ContextFSI Viewer JS
Length of the vertical line ofthe hot spot's marker. Range: [0 ... x]
53NeptuneLabs - FSIViewer
2 FSI ViewerJS
horizontalMarkerPosition
Descriptionhorizontal position of the marker line
Syntaxfloat
Default0
ContextFSI Viewer JS
Defines the horizontal position of the marker line on the tooltip. Range: [0.0 ...
1.0] The value 0.0 marks the left corner of the tooltip while 1 marks the right
corner.
verticalMarkerPosition
Descriptionvertical position ofthe marker line
Syntaxfloat
Default0.5
ContextFSI Viewer JS
Defines the vertical position of the marker line on the tooltip. Range: [0.0 ... 1.0]
The value 0.0 marks the top corner of the tooltip while 1 marks the bottom
corner.
NeptuneLabs - FSIViewer54
2 FSI ViewerJS
markerAngle
Descriptionangle of the vertical hot spot marker
Syntaxfloat
Default45
ContextFSI Viewer JS
Defines the angle of the vertical hot spot marker.
perimeterAngle
Descriptionviewingangle in degrees at which to display the hot spot
Syntaxfloat
Default-
ContextFSI Viewer JS
The viewing angle in degrees at which to display the hot spot.
E.g. for a hot spot on the left side ofthe object use "90".
For a hot spot at the back of the object use "180".
Alias: perimeterAngleY
perimeterAngleX
Descriptionviewingangle in degrees at which to display the hot spot
Syntaxfloat
Default-
ContextFSI Viewer JS
The viewing angle in degrees at which to display the hot spot.
Only applies ifa rotation around the x-axis isused.
55NeptuneLabs - FSIViewer
2 FSI ViewerJS
perimeterAngleRange
Descriptionangle range in which the hot spot shallbe visible
Syntaxfloat
Default30
ContextFSI Viewer JS
The angle range in which the hot spot shall be visible.
E.g. a perimeterAngle of "90" and a perimeterAngleRange of "40" would display
the hot spot from 70 to 110 degrees (+/- 20°).
Alias: perimeterAngleRangeY
perimeterAngleRangeX
Descriptionangle range in which the hot spot shallbe visible
Syntaxfloat
Default30
ContextFSI Viewer JS
The angle range in which the hot spot shall be visible.
Only applies ifa rotation around the x-axis isused.
perimeterAngleFadeOut
Description
Syntaxfloat
Default10
ContextFSI Viewer JS
The angle range in which the hot spot shall be faded in and out.
A value of "0" means that the hot spot will be displayed or hidden immediately
when entering or leaving the perimeterAngleRange. Values greater than 0
extend the perimeterAngleRange by the given degrees in which the hot spot's
opacity changes.
Alias: perimeterFadeOutY
NeptuneLabs - FSIViewer56
angle range in whichthe hot spot shallbe faded in and
out
2 FSI ViewerJS
perimeterAngleFadeOutX
Description
Syntaxfloat
Default10
ContextFSI Viewer JS
The angle range in which the hot spot shall be faded in and out.
A value of "0" means that the hot spot will be displayed or hidden immediately
when entering or leaving the perimeterAngleRange. Values greater than 0
extend the perimeterAngleRange by the given degrees in which the hot spot's
opacity changes.
Only applies ifa rotation around the x-axis isused.
perimeterZoom
Description
Syntaxfloat
Default1.0
ContextFSI Viewer JS
An optional parameter specifying from which magnification level on a hot spot
should be displayed. E.g. 2.5 would hide the hot spot as long as the
magnification level is below 2.5. This parameters has no effect if zoom is
disabled by the global "enableZoom" parameter.
angle range in whichthe hot spot shallbe faded in and
out
specifies from which magnification level on a hot spot is
displayed
perimeterImageWidth
Description
Syntaxfloat
Default1.0
ContextFSI Viewer JS
Similar to perimeterZoom. While perimeterZoom depends on the magnification
this parameter defines the absolute width of the (zoomed) spin instance to
57NeptuneLabs - FSIViewer
defines the absolute width ofspin instance for displaying
hot spot
2 FSI ViewerJS
decide whether to show or hide a tooltip. It is recommend to set this parameter
as a default hot spot parameter when using relative instance sizes.
interactive
Description
Syntaxboolean
Defaultfalse
ContextFSI Viewer JS
The hot spot content area will not react on mouse over, click actions and alike
when setting "interactive" to false.
actionParameter
Descriptionvalue willbe passed on to the hot spot callback function
Syntaxstring
Default""
ContextFSI Viewer JS
An optional parameter value that willbe passed on to the hot spot callback
function.
url
Description
Syntaxstring
Default""
ContextFSI Viewer JS
enables or disables reactions ofhot spot areas to
interactive actions
An optional URL to open if the user clicks the hot spot
label.
An optional URL to open if the user clicks the hot spot label.
You can use any URL you can use with the window.open command, like regular
URLs as wellas "javascript:" or "email:"URLs.
NeptuneLabs - FSIViewer58
2 FSI ViewerJS
urlTarget
Descriptiontarget frame or window to open the URL in
Syntaxstring
Default_self
ContextFSI Viewer JS
The target frame or window to open the URL in.
Use e.g. "_blank" to open hyperlinks in a new window.
focusOnClick
Descriptionzoom and/or rotate to hotspot position on click
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
Enables zooming and/or rotating to hotspot position on click.
rotateOnFocus
Descriptionrotate to sceneSet and scene
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
Setting this parameter to true rotates to sceneSet and scene matching the
coordinates defined in hotspot.perimeterAngle, while false keeps the current
sceneSet and scene.
59NeptuneLabs - FSIViewer
2 FSI ViewerJS
zoomOnFocus
Descriptionzoom to hotspot
Syntaxboolean
Defaulttrue
ContextFSI Viewer JS
Setting this parameter to true zooms to thehotspot, while false keeps the
current zoom.
focusRadius
Descriptionsize of section when zooming to a hotspot
Syntaxfloat
Default0.25
ContextFSI Viewer JS
Defines the size ofthe sectionwhen zooming to a hotspot (0...1).
.
focusAngleX, focusAngleY
Descriptiondefines scene with given focus angle (optional)
Syntaxfloat
Default-
ContextFSI Viewer JS
If set, the target scene or sceneSet willnot be determined bythe
perimeterAngle parameter, but with the given focusAngle.
.
NeptuneLabs - FSIViewer60
2 FSI ViewerJS
normalClass
Description
Syntaxstring
Default"FSI360HotSpot_Normal"
ContextFSI Viewer JS
A CSS class name to use for the content <div> tag in normal state.
activeClass
Description
Syntaxstring
Default"FSI360HotSpot_Active"
ContextFSI Viewer JS
A CSS class name to use for the content <div> tag in onclickstate.
hoverClass
Description
Syntaxstring
Default"FSI360HotSpot_Active"
ContextFSI Viewer JS
CSS class name to use for content <div> tag in normal
state
CSS class name to use for content <div> tag in mouse
onclickstate
CSS class name to use for content <div> tag in mouse
over state
A CSS class name to use for the content <div> tag in mouse over state.
Example CSS classes:
It is recommended to add the following CSS classes to the HTML document
containing FSI Viewer JS instances with hot spots. These classes will be used if
you do not define "normalClass", "hoverClass" and "activeClass" parameters for
your hot spots. The _Mobile und _SmallMobile classes will be added to the hot
spot class names on mobile device or small mobile devices (phones). You can
61NeptuneLabs - FSIViewer
2 FSI ViewerJS
use them to adjust the font size to increase the readability of text within the hot
spots.
Defines the spin direction of the video.
You might want to change the spinDirection option if the object spins into the
wrong direction when dragging the mouse left or right.
NeptuneLabs - FSIViewer64
2 FSI ViewerJS
captureFrames
Descriptionnumber of frames to capture from the video
Syntaxinteger
Default120
ContextFSI Viewer JS
The number of frames to capture from the video.
The more frames you define the smoother the rotation will appear.
More frames require more time to capture the videos on startup.
120 frames (default) means 3° per frame.
captureOffsetStart
Description
Syntaxfloat (inseconds)
Default0
ContextFSI Viewer JS
An optional offset at the start of the video to use when capturing the video
frames. You might want to define an offset if the video does not start exactly at
the position of the first image (0°).
captureOffsetEnd
Description
Syntaxfloat (inseconds)
Default0
ContextFSI Viewer JS
An optional offset at the end of the video to use when capturing the video
frames. You might want to define an offset if the video does not start exactly at
the position of the first image (0°).
offset at start of video to use when capturing the video
frames
offset at end of video to use when capturing the video
frames
65NeptuneLabs - FSIViewer
widthCorrectionFactor
2 FSI ViewerJS
Description
Syntaxfloat
Default1.0
ContextFSI Viewer JS
An optional factor to adjust the width of the video to the width ofthe images on
screen. You might want to adjust the value if the image do not match the video
dimension.
heightCorrectionFactor
Description
Syntaxfloat
Default1.0
ContextFSI Viewer JS
An optional factor to adjust the height of the video to the height of the images
on screen. You might want to adjust the value if the image do not match the
video dimension.
adjusts width of the video to width of the images on
screen
adjusts height of the video to height of the images on
screen
xCorrectionFactor
Description
Syntaxfloat
Default0.0
ContextFSI Viewer JS
An optional factor to adjust the horizontal position ofthe video to the horizontal
position of the images on screen. You might want to adjust the value if the
image do not match the video position.
NeptuneLabs - FSIViewer66
adjusts horizontal position of video to horizontal position
of images
2 FSI ViewerJS
yCorrectionFactor
Description
Syntaxfloat
Default0.0
ContextFSI Viewer JS
An optional factor to adjust the vertical position of the video to the vertical
position of the images on screen. You might want to adjust the value if the
image do not match the video position.
frameOffset
Descriptiondetermines a frame offset ifrequired
Syntaxinteger
Default0
ContextFSI Viewer JS
Determines a frame offset at the start if required.
adjusts vertical position ofvideo to vertical position of
images
2.5.6 Plugin Parameters
plugins
Descriptionadds a Plug-in (e.g. Fullscreen) to the viewer
SyntaxString
Default""
ContextFSIViewer JS
Adds a plug-in to the viewer.
Please note:
If you would like to add specific parameters to the plugins via the fsi-viewer
tag, you can do this by prefixing the parameter name with the name of the
plug-in, e.g. autospin_enabled="true"
67NeptuneLabs - FSIViewer
2 FSI ViewerJS
FullScreen Plug-In
Adding the parameter plugins:"FullScreen, Resize"enables a fullscreen view
option in FSIViewer JS. The Resize parameter needs to be set in order to ensure proper
adjusting to the full screen.
NOTE:If the FSIViewer JS is embedded in an iFrame, the attribute
allowfullscreen="true" needs to be added to the iFrame. Otherwise the FullScreen Plugin will not work due to security restrictions of the browser.
AutoSpin Plug-In
available from version 16.09.30
Adding the parameter plugins:"AutoSpin"enables a button which lets you
play/pause the animation that is set with the autospinspeed parameter.
The following parameters can be set:
Speed
DescriptionTime in seconds for a fullrotation
Syntaxfloat
Default-
ContextFSI Viewer JS
Has the same function as
of the plug-in. Time in seconds for a fullrotation. Negative values reverse spin direction.
preventClickZoomWhileSpinning
Descriptionprevents zooming while Autospin is activated
SyntaxBoolean
Defaultfalse
ContextFSIViewer JS
Prevents zooming while clicking into the Autospin.
NeptuneLabs - FSIViewer68
→ FSI Viewer JS Parameters
, but is used here in the context
2 FSI ViewerJS
Button
Descriptionenables Play/Pause button
SyntaxBoolean
Defaulttrue
ContextFSIViewer JS
Enables the Play/ Pause button for the autospin animation
MouseModes Plug-In
The MouseMode plugin is activated by default with the _default.xml.
The following parameters can be set:
MenuOffset
DescriptionIndentation ofthe menu buttons
SyntaxInteger
Default0
ContextFSI Viewer JS
Specifies the space in pixels left of the menu button(s) of the plug-in.
Mode
n
DescriptionRemoves the button for mouse mode n from the menu bar
SyntaxBoolean
Default-
ContextFSI Viewer JS
Provides the possibility to hide specific mouse mode buttons.
69NeptuneLabs - FSIViewer
Mode nMouse Mode
360°
Mode0Zoom
Mode1Pan
2 FSI ViewerJS
Mode2
Mode3Rotate 2D (Z Axis)
Sequence
DescriptionSequence of the buttons
SyntaxString
Default0,1,3,2
ContextFSI Viewer JS
You can alter the sequence of the buttons by providing the modes separated by
commas (see the table above).
Example: "1,0,2,3" alters the sequence of the buttons to "Pan, Zoom, Rotate 3D,
Rotate 2D".
Rotate 3D (X/Y Axis)
2.6 Creating and using Spin Videos
When creating spin videos for ultra smooth rotations it is strongly
recommended to use a camera that can take photos and record videos so that
the position and technical specifications apply to both, the video and the
photos.
Make sure you do not modify the object or camera position between the video
and photo shooting session.
NeptuneLabs - FSIViewer70
2 FSI ViewerJS
1) Take the photos from different viewing angles
2) Record a video of a full,continuous object spin starting at the angle you took
the first photo from until reaching the same angle again. You might want to
take a video of2 fullspins and cut the video later on.
3) Cut the video ifrequired making sure the video starts and ends at the viewing
angle you took the first photo at
4) Export the video in the following formats:
webm (for Chrome, Firefox, Safari, etc.)
mp4 (for MS IE)
5) Copy the video files to either a static source connector on FSI Server or to
the [viewer]/applications/spin360/videos/ folder using the same file names just
with the file extension matching the video format
6) Add the <video> section to your configuration file and add the "source"
parameter (just the file name WITHOUT the file extension).
2.7 Embedding the viewer at runtime via JavaScript
It is also possible to embed the viewer at runtime via JavaScript.
// Important: call this AFTER adding the node to the DOM
$FSI.initCustomNode(node);
Note:
$FSI.initCustomNode(node)initializes the given node.
When adding multiple viewers you can initialize all new FSI Viewer JS nodes in one
go, using this command:
$FSI.initCustomTag("fsi-viewer");
or, when using different custom tags (fsi-viewer, fsi-imageflow,…):
$FSI.initCustomTags();to initialize all new FSI custom tags.
Destroying Instances
Before finally removing <fsi-viewer> nodes from the DOM, you need to call the
destroy() method of the node.
This will release allevent handlers and free allocated resources.
Example:
var node = document.getElementById("myViewer");
node.destroy();
node.parentNode.removeChild(node);
NeptuneLabs - FSIViewer72
2 FSI ViewerJS
2.8 JavaScript Interface
The JavaScript interface of FSI Viewer JS can be useful if you want to change the
current image or config or add additional content depending on the object spin
position or hot spot actions.
2.8.1 Public Methods
voidchangeConfig(strCfgFileName, oParameters);
Reset the viewer object and change the configuration to the
given configuration file.
strCfgFileName (optional): path to the configuration file
(see "cfg" parameter)
oParameters (optional): an object containing parameters If
present, these parameters willoverwrite the parameters
defined upon initialization.
Resets the viewer object and changes the image displayed
to the given image file.
73NeptuneLabs - FSIViewer
voidstart();
Starts the viewer.
voidprintAPI();
Shows all API methods in the console in alphabetical order.
voidinit(elementID, oParameters, bDebug);
Initialises the chosen viewer element.
bInitDonegetInitDone();
Returns ifthe initialization process is done.
voidspinToDegree(fDegree);
Spins to the position indicated by degree. Note that you can
only spin to a position that has a corresponding HD image,
not to a position that shows a video only.
fDegree: the desired position in degree (0 .. 360)
2 FSI ViewerJS
voidspinToTarget(nTargetFrame, nStopSceneSet,
nFrames);
Spins to the position indicated by the target parameters.
Note that you can onlyspin to a position that has a
corresponding HD image, not to a position that shows a
video only.
nMousemodegetMouseMode();
Returns the current active mouse mode.
NeptuneLabs - FSIViewer74
2 FSI ViewerJS
voidsetMouseMode(nMode);
Sets the active mouse mode.
nInstanceIDgetInstanceID();
Returns the number of the viewer object.
voiddestroy();
Destroys the given FSI Viewer JS object. You should destroy
the instance before you remove the object spins <div> tag
from the DOM tree.
strVersiongetVersion();
Returns a string containing the FSI Viewer JS software
version.
strVersiongetBuild();
Returns a string containing the FSI Viewer JS software build
number.
nHeightgetMenuHeight(strPurpose);
Returns a string containing the height of the menu bar.
bSuccessaddListener(strListenerName, fn, iScope);
Calls a specific listener..
bSuccessremoveListener(strListenerName, fn);
Removes a specificlistener..
75NeptuneLabs - FSIViewer
voidshowAboutWindow();
Shows the "About" window.
voidshowMenuButton(strButtonID, bShow);
Shows a specific menu button.
voidupdateSize();
Updates the size of a fsi-viewer element.
voidresetView();
Reset the viewer to the initial magnification and rotation.
fZoomInPercentgetZoom();
Returns the current magnification level..
2 FSI ViewerJS
voidsetZoom(fPercent, bPreliminary, bAnimate);
Set magnification to the amount indicated by fPercent
[0...100], where fPercent = 0 means normal scale and
fPercent = 100 for maximum magnification.
bPreliminary:Set to true if the magnification levelis
temporary only.In this case no additional image data willbe
loaded. bAnimate: Set to true to animate from the current
to the given magnification level.
NeptuneLabs - FSIViewer76
2 FSI ViewerJS
strViewStringgetViewString();
Returns the string representing the current image section
and rotation. The format is: SceneSet, Scene, left, top, right,
bottom
SceneSet
Scene
describes the rotation. Ifyou use 36 images for a spin,
scene 18 means a rotation of 180 degree.
left, top, right, bottom
to 1.0].
bSuccessgotoViewString(strViewString, bAnimated);
Displaythe image section and rotation as specified by
"strViewString".
Please refer to the description ofthe "getViewString"
method for a format description.
The boolean "bAnimated" can be used to specify,wether the
view should be displayed immediatelyor in form of an
animated movement from the current view to the specified
view.
strViewStringgetHotspotViewString(nHotspotID)
is 1 for rotations around one axis
: image coordinates in the range [0.0
returns the view string for the given hotspot.
FSIHotspotID is the consecutive number of the Hotspot
(1,2,3,..)
bSuccessgotoHotspot(FSIHotspotID, bAnimate)
displays the image section as specified bythe Hotspot.
FSIHotspotID is the consecutive number of the Hotspot
(1,2,3,..)
The boolean "bAnimated" can be used to specify,wether the
view should be displayed immediatelyor in form of an
animated movement from the current view to the specified
view.
77NeptuneLabs - FSIViewer
bPresentgetMenuButtonPresent(strButtonID)
Shows active menu buttons, can be used to remove inactive
buttons from the menu ifyou are using a custom skin.
NOTE: Method only delivers correct results after the callback
"onInitMenu" is called.
Shows custom tooltips..
strTip: HTMLcode of thetooltip or ID in language.xml files
elSrc: the DOM element wich is used to align the tooltip,
usually event.target
x,y: (optional) offset for tooltip position
voidhideMenuToolTip()
Shows custom tooltips..
strTip: HTMLcode of thetooltip or ID in language.xml files
elSrc: the DOM element wich is used to align the tooltip,
usually event.target
x,y: (optional) offset for tooltip position
oParametersgetParameters();
Returns an object containingall parameters set via
javascript or custom tag attributes.
2 FSI ViewerJS
mixedgetConfigValue(strName);
Returns the value of the configuration parameter
"strName".
bResultmakeBoolean(value, bDefaultValue);
Transforms a value into a boolean value, e.g.
"1" to true, "false" to false
bDefaultValue
mixedgetPluginParameter(strPluginName,
strParameterName, defaultValue, bMakeBoolean);
Returns the parameter defined for the given plugin.
This optional callback function can be used to remove
inactive buttons from the menu bar ifyou are using a custom
skin.
onProgress(fPercent);
This optional callback function can be called while the loading
progress.
onMenuButtonEnabled(strButtonID, null, bEnable);
This optional callback function can be used call an action
when a button is enabled or disabled.
onMenuButtonPressed(strButtonID, evt);
This optional callback function can be used to set an action
that starts when a button is pressed.
NeptuneLabs - FSIViewer84
2 FSI ViewerJS
onMenuButtonReleased(strButtonID, evt);
This optional callback function can be used to set an action
when a certain button is released..
onMenuButtonClicked(strButtonID, evt);
This optional callback function can be used to set an action
when a certain button is released..
onMenuButtonSetPressed(bPressed);
This optional callback function can be used to call an action
when a button is pressed.
onReset();
This optional callback function can be used to call an action
when the configuration is changed.
onInitMenu();
This optional callback function can be used to set an action
when the menu is built (after allbuttons are added).
onMouseModeChanged(nMouseMode);
This optional callback function can be used to call an action
when the mouse mode is changed.
onStartDragging(bInNavWindow);
This optional callback function can be used to call an action
when the user starts dragging the image.
85NeptuneLabs - FSIViewer
2 FSI ViewerJS
onStopDragging(bInNavWindow);
This optional callback function can be used to call an action
when the user stops dragging the image.
onDataComplete();
This optional callback function can be used to call an action
while the configuration data loading is completed.
Images/videos are not loaded yet at this point.
onFullScreen(bFullScreenActive);
This optional callback function can be used to call an action
whenFullScreen mode is enabled or disabled.
onViewChanged(strViewString);
This optional callback function can be used to call an action
as soon as the viewed image section changes.
This optional callback function can be used to call an action
as soon as a certain Hotspot event occurs. The following
events are possible: mouseover, mousedown, mouseout &
click.
NeptuneLabs - FSIViewer86
3 FSI TouchZoom
3 FSI TouchZoom
FSI TouchZoom is an HTML5 and Javascript based tool adding image zoom to touch
enabled devices like Apple iPad ™. When pinch zooming into a website containing single
source images provided by FSI Server, the images will be displayed in the resolution
matching the current magnification.
Supported devices
l iOS 4 or higher
l Android 4.xbased devices
l Windows 8 with touch enabled browsers
l Mac OS with touch device
Usage
To use FSI TouchZoom, make sure the respective images on your website come from
FSI Server and add the following script to the <head> section of your website:
Alternativelyit is possible to use an external JavaScript for defining the parameters. This
is useful if the parameters are valid for multipleHTML documents.
In case the script is automatically initialised (default), the automaticallycreated
instance can be adressed via
§FSI.touchZoom
3.1 Initializing FSI TouchZoom manually
Initializing or adding images manually
If you are adding images by script, you can decide to:
I) let FSI.TouchZoom initialize automatically and add image manually:
// prevent $FSI.TouchZoom from initializing automatically
// on document load
$FSI.touchZoomParameters = {autoInit:false};
function onBodyLoaded()
{
addMyImagesToTheDom(); // add your images here
// create and initialize FSI.TouchZoom
var parameters = {debug:true, useDevicePixelRatio:true};
myTouchZoom = new $FSI.TouchZoom();
myTouchZoom.init(parameters);
}
</script>
3.2 FSI TouchZoom Parameters
You can optionally modifythe way FSI TouchZoom works by passing parameters to
the script. To do so, pass an object containing the parameters and value as an
object to the constructor:
Example:
<script type="text/javascript">
FSITouchZoom = new $FSI.TouchZoom({debug:true,
zoomPrecision:6});
FSITouchZoom.init();
</script>
NeptuneLabs - FSIViewer90
3 FSI TouchZoom
debug
Description
SyntaxBoolean
Defaultfalse
ContextFSI TouchZoom
Displaydebug and status information inthe browser's javascript console.
useDevicePixelRatio
DescriptionUse the device's pixelratio to displayeven sharper images.
SyntaxBoolean
Defaulttrue
ContextFSI TouchZoom
Use the device's pixel ratio to display even sharper images. For devices with a pixel
ratio >1 (e.g. Apple iPad 3) the images willbe displayed in higher resolutions. If the
aspect ratio is 2, the images loaded when pinching a page willbe 2 x the resolution
compared to devices with a pixelaspect ratio of 1.
monitorPositions
Description
SyntaxBoolean
Defaulttrue
ContextFSI TouchZoom
displays debug &status information in the javascript
console.
The script monitors the position of allsingle source <img>
tags
By default the script monitors the position of allsingle source <img> tags to ensure
that a higher resolution image will be loaded if the image is within the viewport. For
huge amounts of images on a single web page you might want to disable this
feature, if the positions of the images do not change (e.g. there is no javascript
modifying the DOM tree).
91NeptuneLabs - FSIViewer
3 FSI TouchZoom
useTiledImages
DescriptionZoomed images willbe tiled into multiple image tiles
SyntaxBoolean
Defaulttrue
ContextFSI TouchZoom
By default, zoomed images of 1000 pixel in width or height will be tiled into multiple
image tiles. While this increases the user experience and the loading performance,
you might want to disable this feature ifyou e.g. change the style of an image (e.g.
style.display) at runtime. In this case the change would not effect the tiled image.
zoomPrecision
Description
SyntaxInteger
Default4
ContextFSI TouchZoom
This parameter defines the precision of loading zoomed images.
Using the value "0" will load images exactly matching the current magnification. This
does on the other hand prevent effective caching.
Values greater than 0 increase the precision how often the script loads new images
when changing the magnification. The value 4 means that the script loads new
images at 1.0, 1.25, 1.5, 1.75, 2.0 etc. magnification levels.
loadingImage
Description
SyntaxBoolean or URL
Defaulttrue
ContextFSI TouchZoom
Specifies whether or which image to display at the bottom right of the viewport
while new images are being retrieved from FSI Server. You can use true or false to
enable/disable the loading image display or provide an URL to a custom image.
This parameter defines the precision of loading zoomed
images.
Specifies whichimage to display at the bottom right ofthe
viewport
NeptuneLabs - FSIViewer92
3 FSI TouchZoom
enableByCSSClass
Descriptionprovides a comma separated list of CSS class names
SyntaxString
Default""
ContextFSI TouchZoom
Using the enableByCSSClass parameter you can provide a comma separated list of
CSS class names. Only images containing at least one of the given class names will
be modified by this script. All other images normal images that do not increase the
resolution dynamically.
You can combine this parameter with the disableByCSSClass parameter.
disableByCSSClass
Descriptionprovides a comma separated list of CSS class names
SyntaxString
Default""
ContextFSI TouchZoom
Using the disableByCSSClass parameter you can provide a comma separated list of
CSS class names. Images containing at least one of the given class names willNOT
be modified by this script. All other images containing single source image URLs will
be modified.
You can combine this parameter with the enableByCSSClass parameter.
3.3 Initializing FSI TouchZoom manually
Initializing or adding images manually
If you are adding images by script, you can decide to:
I) let FSI.TouchZoom initialize automatically and add image manually:
// prevent $FSI.TouchZoom from initializing automatically
// on document load
$FSI.touchZoomParameters = {autoInit:false};
function onBodyLoaded()
{
addMyImagesToTheDom(); // add your images here
// create and initialize FSI.TouchZoom
var parameters = {debug:true, useDevicePixelRatio:true};
myTouchZoom = new $FSI.TouchZoom();
myTouchZoom.init(parameters);
}
</script>
NeptuneLabs - FSIViewer94
3 FSI TouchZoom
3.4 JavaScript Interface
Usually you willnot need to use the javascript interface.
Even if you modify an images src parameter at runtime, the tool will notice that and
replace the magnified image accordingly.
If you on the other hand add images to the DOM tree at runtime or modify the
position of images by script, the following interface is available to update the images
and positions:
FSITouchZoom = new $FSI.TouchZoom();
FSITouchZoom.init();
I) Public Methods
voidscanForNewImages();
Calling the scanForNewImages method willmake the script
look for single source images that have not been present in
the DOM tree when the document finished loading. Ifyou
e.g. add <img> tags at runtime, you need to call this method
in order to make the script aware of new image(s).
voidaddImage(elImg, strSrc);
This adds a single <img> node to the list of dynamictouch
zoom images. elImg: the <img> node objectstrsSc (optional): the image URL (img.src ifundefined)
Note: you can as well callscanForNewImages()after
adding an <img> node.
voidremoveImages(arImageDOMElements, bSilent);
Removes one or more touch zoom images and restores their
original state.
arImageDOMElements:an <img> node object or an array
of <img> node objects
95NeptuneLabs - FSIViewer
voidupdateImagePositions();
This makes the tool update allimage positions and refresh
images ifneeded. You might want to call this after modifying
the DOM tree by script.
voidprintAPI();
Shows all API methods in the console in alphabetical order.
voidsetZoomPrecision(fPrecision);
Use this method to modify the parameter zoomPrecision at
runtime.
voiddestroy();
Destroys FSITouchZoom.
3 FSI TouchZoom
voidinit();
Initializes FSITouchZoom.
strVersiongetVersion();
Returns a string containing the FSI ImageFlow software version.
strVersiongetBuild();
Returns a string containing theFSI ImageFlow software build
number.
voidenable(bEnable);
Enables FSITouchZoom.
NeptuneLabs - FSIViewer96
3 FSI TouchZoom
voidlockImage(elImage, bLock);
Locks a certain image .
voidlockImageSourceImage(elImage, bLock);
Locks a certain image to it's source dimensions.
voidlockUpdates(bLock);
Locks updates .
voidresetImage(elImg);
Resets a certain image.
voidtriggerRefresh();
Triggers a refresh.
97NeptuneLabs - FSIViewer
4 FSI QuickZoom
4 FSI QuickZoom
FSI QuickZoom is an HTML5 and Javascript based tool adding image zoom to desktop
and laptop computers on mouseover. When hovering over a single source image
provided by FSI Server, the part of the image the cursor is currently pointing at will be
displayed enlarged in a zoom window next to the originalimage.
Supported devices
l Desktop or laptop computers & allmajor browsers
Usage
To use FSI QuickZoom, make sure the respective images on your website come from
FSI Server and add the following script to the <head> section of your website:
Alternativelyit is possible to use an external JavaScript for defining the parameters. This
is useful if the parameters are valid for multipleHTML documents.
NeptuneLabs - FSIViewer98
4 FSI QuickZoom
In case the script is automatically initialised (default), the automaticallycreated
instance can be adressed via
§FSI.quickZoom
4.1 How it works
FSI QuickZoom searches for all<img> tags in the HTML document containing FSI
Server single source image URLs and adds event handlers to them.
When moving the mouse cursor over these images a magnified image willbe displayed
next to the original image. The user can
move the cursor across the original image to display any image section of interest.
4.2 FSI QuickZoom Parameters
You can optionallymodify the way FSI QuickZoom works by passing parameters to
the script. To do so, pass an object containing the parameters and value as an
object to the constructor:
Example:
<script type="text/javascript">
FSIQuickZoom = new $FSI.QuickZoom({debug:true,
magnification:6});
FSIQuickZoom.init();
</script>
debug
Description
SyntaxBoolean
Defaultfalse
ContextFSI QuickZoom
Displaydebug and status information inthe browser's javascript console.
99NeptuneLabs - FSIViewer
displays debug &status information in the javascript
console.
4 FSI QuickZoom
useDevicePixelRatio
DescriptionUse the device's pixelratio to displayeven sharper images.
SyntaxBoolean
Defaulttrue
ContextFSI QuickZoom
Use the device's pixel ratio to display even sharper images. For devices with a pixel
ratio >1 (e.g. Apple iPad 3) the images willbe displayed in higher resolutions. If the
aspect ratio is 2, the images loaded when pinching a page willbe 2 x the resolution
compared to devices with a pixelaspect ratio of 1.
headers
Description
SyntaxString
Default"cors"
ContextFSI QuickZoom
The "&headers=" parameter to use for image requests.
enableByCSSClass
Descriptionprovides a comma separated list of CSS class names
SyntaxString
Default""
ContextFSI QuickZoom
Using the enableByCSSClass parameter you can provide a comma separated list of
CSS class names. Only images containing at least one of the given class names will
be modified by this script. All other images are displayed as normal images that do
not use FSIQuickZoom.
You can combine this parameter with the disableByCSSClass parameter.
display debug and status information in the JavaScript
console
NeptuneLabs - FSIViewer100
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.