Extends
Members
(private) activationCountdown_ :number
- Description:
An optional countdown for the start of reshuffling can be displayed here. The countdown is then displayed at the bottom right of the page.
- Source:
An optional countdown for the start of reshuffling can be displayed here. The countdown is then displayed at the bottom right of the page.
Type:
- number
(private) activationHint_ :Element
- Description:
Dom reference for the activation hint when a Exhibition#activationCountdown_ time is defined.
- Source:
Dom reference for the activation hint when a Exhibition#activationCountdown_ time is defined.
Type:
- Element
(private) allExhibitColliders_ :Array.<THREE.Object3D>
- Description:
Contains all THREE collision objects of the exhibits for checking the collision by raycasting.
- Source:
Contains all THREE collision objects of the exhibits for checking the collision by raycasting.
Type:
- Array.<THREE.Object3D>
(private) allMassBodiesAreScalledUp_ :boolean
- Description:
Defines if the mass objects of all exhibits are scalled up for normal collision behaviour.
- Source:
Defines if the mass objects of all exhibits are scalled up for normal collision behaviour.
Type:
- boolean
(protected) antialiasDisabled_ :boolean
- Description:
Defines if antialias should be activated for the WebGLRenderer
- Source:
- Overrides:
Defines if antialias should be activated for the WebGLRenderer
Type:
- boolean
(private) autoResetProvider_ :AutoResetProvider
- Description:
Reference to AutoResetProvider to monitor and control the automatic reset of the page when the user is inactive for a specified period of time.
- Source:
Reference to AutoResetProvider to monitor and control the automatic reset of the page when the user is inactive for a specified period of time.
Type:
(protected) cameraOribitview_ :THREE.Camera
- Description:
Camera vor randering an exhibit orbit view
- Source:
Camera vor randering an exhibit orbit view
Type:
- THREE.Camera
(protected) cameraTopviewWrapper_ :THREE.Group
- Description:
3D container that contains the camera for the top view and is used for position changes.
- Source:
3D container that contains the camera for the top view and is used for position changes.
Type:
- THREE.Group
(protected) cameraTopview_ :THREE.Camera
- Description:
Camera for rendering the top view
- Source:
Camera for rendering the top view
Type:
- THREE.Camera
(protected) camera_ :THREE.Camera
- Description:
Current camera object which is used in the render process.
- Source:
- Overrides:
Current camera object which is used in the render process.
Type:
- THREE.Camera
(private) checkExhibits_ :boolean
- Description:
Specifies when to check in exhibits whether certain 3D elements can be removed after the first interaction with an artwork.
- Source:
Specifies when to check in exhibits whether certain 3D elements can be removed after the first interaction with an artwork.
Type:
- boolean
(protected) checkFrames_ :boolean
- Description:
Determines whether the application should monitor the framerate to decide if it is necessary to create a renderer with different settings with lower quality but better performance.
- Source:
- Overrides:
Determines whether the application should monitor the framerate to decide if it is necessary to create a renderer with different settings with lower quality but better performance.
Type:
- boolean
(protected) clock_ :THREE.Clock
- Source:
- Overrides:
Type:
- THREE.Clock
(private) collidedSensors_ :Array.<string>
- Description:
List of Cannon sensors that have detected a collision change in Exhibition#handleCollisionStart_ and Exhibition#handleCollisionEnd_
- Source:
List of Cannon sensors that have detected a collision change in Exhibition#handleCollisionStart_ and Exhibition#handleCollisionEnd_
Type:
- Array.<string>
(private) controlProvider_ :ControlProvider
- Description:
Reference to ControlProvider to monitor the activation of a gamepad controller so that the application's control is adapted to it.
- Source:
Reference to ControlProvider to monitor the activation of a gamepad controller so that the application's control is adapted to it.
Type:
(private) countdownIsRunning_ :boolean
- Description:
Defines if the countdown for the reshuffeling of the exhibits is running.
- Source:
Defines if the countdown for the reshuffeling of the exhibits is running.
Type:
- boolean
(protected) creationCompleter_ :Completer
- Description:
Completer is a helper which returns a promise. Its solved if the creation of the 3D scene is completed.
- Source:
- Overrides:
Completer is a helper which returns a promise. Its solved if the creation of the 3D scene is completed.
Type:
- Completer
(protected) currentFps_ :number
- Description:
Current framerate
- Source:
- Overrides:
Current framerate
Type:
- number
(private) enableDebugRendering_ :boolean
- Description:
Specifies whether debug rendering is generally enabled for the Cannon world. This can be activated via the URL parameter
physic=1
.
- Source:
Specifies whether debug rendering is generally enabled for the Cannon world. This can be activated via the URL parameter physic=1
.
Type:
- boolean
enabled
- Description:
Setter
- Source:
- Overrides:
Setter
(protected) enabled_ :boolean
- Description:
Defines if the rendering is active
- Source:
- Overrides:
Defines if the rendering is active
Type:
- boolean
(private) exhibitFrameOpener_ :Element
- Description:
Dom reference for the button which should show an external installation in an iframe layer.
- Source:
Dom reference for the button which should show an external installation in an iframe layer.
Type:
- Element
(private) exhibitInfoOpener_ :Element
- Description:
Dom reference for the button which should show the exhibit infos.
- Source:
Dom reference for the button which should show the exhibit infos.
Type:
- Element
(private) exhibitInteractiveHint_ :Element
- Description:
Dom reference for the interaction hint which is displayed until the reshuffeling is completed.
- Source:
Dom reference for the interaction hint which is displayed until the reshuffeling is completed.
Type:
- Element
(private) exhibitViewCloser_ :Element
- Description:
Dom reference for the button which should switch back to the normal visitor view.
- Source:
Dom reference for the button which should switch back to the normal visitor view.
Type:
- Element
(private) exhibitViewOpener_ :Element
- Description:
Dom reference for the button which should switch into the exhibit/orbit view.
- Source:
Dom reference for the button which should switch into the exhibit/orbit view.
Type:
- Element
(private) exhibitionProvider_ :ExhibitionProvider
- Description:
Reference to ExhibitionProvider to communicate with the backend and provide and monitor all information that dynamically changes the application.
- Source:
Reference to ExhibitionProvider to communicate with the backend and provide and monitor all information that dynamically changes the application.
Type:
(private) exhibits_ :Array.<Exhibit>
- Description:
list of all created exhibits
- Source:
list of all created exhibits
Type:
- Array.<Exhibit>
(private) firstInteractionCompleter_ :Completer
- Description:
Completer is a helper which returns a promise. It is solved when the first interaction of the user has been registered. In this case, the user has clicked on the audio hint box button that is displayed at startup.
- Source:
Completer is a helper which returns a promise. It is solved when the first interaction of the user has been registered. In this case, the user has clicked on the audio hint box button that is displayed at startup.
Type:
- Completer
(protected) fpsThreshhold_ :number|Array.<number>
- Description:
General limit or list of limits for the current Abstract3DWorld#lowSettingStep_ for the check if the current framerate is detected as a lower framerate.
- Source:
- Overrides:
General limit or list of limits for the current Abstract3DWorld#lowSettingStep_ for the check if the current framerate is detected as a lower framerate.
Type:
- number | Array.<number>
(protected) frames_ :number
- Description:
Current frame count since rendering was started
- Source:
- Overrides:
Current frame count since rendering was started
Type:
- number
(private) ground_ :THREE.Mesh
- Description:
Ground color plane
- Source:
Ground color plane
Type:
- THREE.Mesh
(private) gui_ :dat.GUI
- Description:
Represents the Helper GUI https://github.com/dataarts/dat.gui to change some world settings WorldProvider#settings on the fly. The GUI is activated and displayed by the URL parameter
gui=1
.
- Source:
Represents the Helper GUI https://github.com/dataarts/dat.gui to change some world settings WorldProvider#settings on the fly.
The GUI is activated and displayed by the URL parameter gui=1
.
Type:
- dat.GUI
(private) hintBox_ :HintBox
- Description:
Component reference for controlling the hint appearing.
- Source:
Component reference for controlling the hint appearing.
Type:
(private) hintNavigationPromise_ :Promise
- Description:
Promise which is solved when the navigation hint boxes (
NAVIGATION_MOVEMENT
,NAVIGATION_PERSPECTIVE
andNAVIGATION_TOPVIEW
) were displayed.
- Source:
Promise which is solved when the navigation hint boxes (NAVIGATION_MOVEMENT
, NAVIGATION_PERSPECTIVE
and NAVIGATION_TOPVIEW
) were displayed.
Type:
- Promise
(private) isFirstActivation_ :boolean
- Description:
This value indicates that it is the first entering of an activation zone by a visitor after reshuffling. As a result, no interactions with the activation zones are triggered during reshuffling.
- Source:
This value indicates that it is the first entering of an activation zone by a visitor after reshuffling. As a result, no interactions with the activation zones are triggered during reshuffling.
Type:
- boolean
(private) layerProvider_ :LayerProvider
- Description:
Reference to LayerProvider for monitoring and controlling layer appearance and disappearance.
- Source:
Reference to LayerProvider for monitoring and controlling layer appearance and disappearance.
Type:
(private) lights_ :Map.<string, THREE.Light>
- Description:
List of created lights for the 3D scene
- Source:
List of created lights for the 3D scene
Type:
- Map.<string, THREE.Light>
(private) loadCheckInterval_ :number
- Description:
Interval id for checking the loading progress.
- Source:
Interval id for checking the loading progress.
Type:
- number
(protected) lowFramerateCount_ :number
- Description:
Frame count of lower frames than the defined Abstract3DWorld#fpsThreshhold_
- Source:
- Overrides:
Frame count of lower frames than the defined Abstract3DWorld#fpsThreshhold_
Type:
- number
(protected) lowSettingStep_ :number
- Description:
Current step of the lower setting reduction
- Source:
- Overrides:
Current step of the lower setting reduction
Type:
- number
(protected) lowSettingThreshhold_ :number|Array.<number>
- Description:
Limit of Abstract3DWorld#lowFramerateCount_ for the current Abstract3DWorld#lowSettingStep_ of lower setting check
- Source:
- Overrides:
Limit of Abstract3DWorld#lowFramerateCount_ for the current Abstract3DWorld#lowSettingStep_ of lower setting check
Type:
- number | Array.<number>
(protected) maxPixelRatio_ :number
- Description:
Defines if the rendering context should be rendered for retina in double resolution
- Source:
- Overrides:
Defines if the rendering context should be rendered for retina in double resolution
Type:
- number
(private) moveController_ :MoveController
- Description:
Initialization of the MoveController with values for acceleration and friction.
x
,z
: values for the visitor movement in the in the 3D space;rh
,rv
: values visitor rotation in the 3D space
- Source:
Initialization of the MoveController with values for acceleration and friction.
x
, z
: values for the visitor movement in the in the 3D space;
rh
, rv
: values visitor rotation in the 3D space
Type:
(protected) orbitControls_ :THREE.OrbitControls
- Description:
THREE orbit controls will be used for the exhibit orbit view
- Source:
THREE orbit controls will be used for the exhibit orbit view
Type:
- THREE.OrbitControls
(private) orbit_ :Object
- Description:
Holds the current orbit view configuration (azimuthal angle, polar angle and zoom)
- Source:
Holds the current orbit view configuration (azimuthal angle, polar angle and zoom)
Type:
- Object
(private) physicDebugger_ :Object
- Description:
Cannon physics debugger to display polygon outline segments for the mass collision objects when reshuffeling occurs.
- Source:
Cannon physics debugger to display polygon outline segments for the mass collision objects when reshuffeling occurs.
Type:
- Object
(private) physicWorld_ :CANNON.World
- Description:
Cannon world for handling all Cannon physic objects.
- Source:
Cannon world for handling all Cannon physic objects.
Type:
- CANNON.World
(protected) prevTime_ :number
- Description:
Used as a value to check the framerate only in a certain time interval.
- Source:
- Overrides:
Used as a value to check the framerate only in a certain time interval.
Type:
- number
(protected) raycaster_ :THREE.Raycaster
- Source:
- Overrides:
Type:
- THREE.Raycaster
(protected) renderer_ :THREE.WebGLRenderer
- Description:
Main WebGLRenderer
- Source:
- Overrides:
Main WebGLRenderer
Type:
- THREE.WebGLRenderer
(protected, nullable) requestFrameId_ :number
- Description:
Instance of the window.requestAnimationFrame call
- Source:
- Overrides:
Instance of the window.requestAnimationFrame call
Type:
- number
(protected) resizeProvider_ :ResizeProvider
- Description:
Reference to ResizeProvider for monitoring device size changes.
- Source:
- Overrides:
Reference to ResizeProvider for monitoring device size changes.
Type:
(private) savedProperties_ :Map.<string, number>
- Description:
Any values can be stored in this object. The zoom value is stored before the change from the visitor view to the exhibit orbit view in order to animate back to this value during the animation in the initial state.
- Source:
Any values can be stored in this object. The zoom value is stored before the change from the visitor view to the exhibit orbit view in order to animate back to this value during the animation in the initial state.
Type:
- Map.<string, number>
(private) scene_ :THREE.Scene
- Description:
Main THREE scene
- Source:
Main THREE scene
Type:
- THREE.Scene
(private) securityProvider_ :SecurityProvider
- Description:
Reference to SecurityProvider for monitoring the data security consent.
- Source:
Reference to SecurityProvider for monitoring the data security consent.
Type:
(protected) shouldBuildImmediately_ :boolean
- Description:
Defines whether the 3D scene should be rendered immediately after the component is initialized.
- Source:
- Overrides:
Defines whether the 3D scene should be rendered immediately after the component is initialized.
Type:
- boolean
(private) soundProvider_ :SoundProvider
- Description:
Reference to SoundProvider for monitoring and executing sound loading processes and sound playback controling.
- Source:
Reference to SoundProvider for monitoring and executing sound loading processes and sound playback controling.
Type:
(protected) stats_ :Stats
- Description:
Stats object https://www.npmjs.com/package/stats-js
- Source:
- Overrides:
Stats object https://www.npmjs.com/package/stats-js
Type:
- Stats
(private) videoProvider_ :VideoProvider
- Description:
Reference to VideoProvider for creating and monitoring Vimeo video instances.
- Source:
Reference to VideoProvider for creating and monitoring Vimeo video instances.
Type:
(private) viewSwitchTimeout_ :number
- Description:
Timeout id for the delayed appearing of view switch buttons
- Source:
Timeout id for the delayed appearing of view switch buttons
Type:
- number
(private) virtualActiveSensor_ :Object|null
- Description:
Holds the values of a detected Cannon sensor that was activated during the reshuffeling and is executed if it is still active when the reshuffeling is complete.
- Source:
Holds the values of a detected Cannon sensor that was activated during the reshuffeling and is executed if it is still active when the reshuffeling is complete.
Type:
- Object | null
(private) visitor_ :Visitor
- Description:
Instance of the created visitor object
- Source:
Instance of the created visitor object
Type:
(protected) worldProvider_ :WorldProvider
- Description:
Reference to the WorldProvider for monitoring actions, loading processes and status changes of the created THREE.Scene.
- Source:
- Overrides:
Reference to the WorldProvider for monitoring actions, loading processes and status changes of the created THREE.Scene.
Type:
Methods
(private) activateGravity_()
- Description:
Activates the attraction force when the user is in an exhibit activation zone. The other exhibits in the vicinity of the activated exhibit are rearranged according to their attraction force based on the tags.
- Source:
(protected) activateInteraction_()
- Description:
Activates interactivity within the 3D scene
- Source:
- Overrides:
(protected) activateScene_()
- Description:
Enable the active scene for rendering and interaction.
- Source:
- Overrides:
(private) activateSensor_(exhibitId, elementId)
- Description:
Entering an activity zone is registered.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
exhibitId |
number | |
elementId |
number |
(private) animateToClosestOrbitPoint_(closestOrbitPoint, targetCameraY, targetCameraZ, targetCameraRotationX) → {Promise}
- Description:
Starts the animated change from the visitor view to the exhibit orbit view
- Source:
Parameters:
Name | Type | Description |
---|---|---|
closestOrbitPoint |
THREE.Vector3 | Closest vector form the visitor position to the default obit view radius (zoom). |
targetCameraY |
number | |
targetCameraZ |
number | |
targetCameraRotationX |
number |
Returns:
- Type
- Promise
(async, protected) buildScene_() → {Promise}
- Description:
Loads and creates the 3D scene.
- Source:
- Overrides:
Returns:
- Type
- Promise
(private) changeCamera_(camera)
- Description:
Changes the camera to the passed one and updates the matrix to the viewport/render size.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
camera |
THREE.Camera |
(private) changeExhibitView_()
- Description:
Triggers the change from the visitor view to the top view and vice versa. For the period of the change the interaction possibility of the user is deactivated.
- Source:
(protected) changeToLowSettings_(step)
- Description:
Bad performance has been detected and the WebGLRenderer is being rebuilt with new settings to improve performance.
- Source:
- Overrides:
Parameters:
Name | Type | Description |
---|---|---|
step |
number | Current (already increased) Abstract3DWorld#lowSettingStep_ |
(private) checkControlling_()
- Description:
Checks and updates the controller settings.
- Source:
(protected) checkFramerate_()
- Description:
Checks the framerate according to the settings Abstract3DWorld#lowSettingThreshhold_ and Abstract3DWorld#fpsThreshhold_ for the current Abstract3DWorld#lowSettingStep_.
- Source:
- Overrides:
(private) checkWebGlSupport_() → {boolean}
- Description:
Checks if the browser supports WebGL
- Source:
- Overrides:
Returns:
- Type
- boolean
(private) createDebugGui_()
- Description:
Defines the values that can be shown and changed in the GUI. The GUI is displayed with the url parameter
gui=1
.
- Source:
(protected) createRenderer_()
- Description:
Creates the main WebGLRenderer
- Source:
- Overrides:
(protected) deactivateInteraction_()
- Description:
Deactivates interactivity within the 3D scene
- Source:
- Overrides:
(protected) deactivateScene_()
- Description:
Disable the active scene for rendering and interaction.
- Source:
- Overrides:
(private) deactivateSensor_()
- Description:
Leaving an activity zone is registered.
- Source:
(protected) displayNoSupportMessage_()
- Description:
Display a message if WebGL isn't supported.
- Source:
- Overrides:
(protected) drawScene_()
- Source:
- Overrides:
(private) enableGravity_(enable)
- Description:
Activates the attraction of the exhibits, so that the physical calculation of Cannon affects their mass and thus the position.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
enable |
boolean |
(private) handleCanvasClick_(event)
- Description:
Analyzes the click on the canvas when the exhibition is in top view and checks by raycasting if an object in the list of Worldprovider#intersectables has been hit. The position of the visitor changes to the clicked position. A minimum distance to the next artwork is kept so that the user does not move too far away from all objects in the room. If an intersectable (exhibit or scenographic element) is hit, the next possible free position to the object is calculated.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
event |
Event |
(private) handleCollisionEnd_(event)
- Description:
Monitors the Cannon sensors and their interaction end. When the user leaves an activity zone, further actions are triggered (end of movement of other artwork, exhibit view and info buttons are hidden).
- Source:
Parameters:
Name | Type | Description |
---|---|---|
event |
Object |
(private) handleCollisionStart_(event)
- Description:
Monitors the Cannon sensors and their interaction start. Checks if the visitor interacts with exhibit elements. If it is an activity zone, it is activated and triggers further events (rearrangement of other artworks, user profile update, display of exhibit view and info buttons).
- Source:
Parameters:
Name | Type | Description |
---|---|---|
event |
Object |
(private) handleLayerHide_(event)
- Description:
Monitors whether a layer is closed and performs different actions depending on the layer.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
event |
LayerEvent |
(private) handleLayerShow_(event)
- Description:
Monitors whether a layer is opened and performs different actions depending on the layer.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
event |
LayerEvent |
(private) handlePhysicPreStep_()
- Description:
Monitor the step before the new powers are applied to physical objects. Influences the forces that occur.
- Source:
(private) handleSwitchExhibitView_()
- Description:
Initializes the switch from visitor view to exhibit orbit view and vice versa.
- Source:
(private) handleSwitchView_()
- Description:
Performs the animated switch from visitor view to top view and vice versa.
- Source:
(private) handleVideoPause_()
- Description:
Enables the background sound when a video is paused/stopped.
- Source:
(private) handleVideoPlay_()
- Description:
Disables the background sound when a video is started.
- Source:
(private) initOrbitView_(artwork3D, orbitView) → {Promise}
- Description:
Starts the animated change from the visitor view to the exhibit orbit view
- Source:
Parameters:
Name | Type | Description |
---|---|---|
artwork3D |
THREE.Object3D | Artwork which should be the center of the orbit view. |
orbitView |
ExhibitionElementOrbitViewModel |
Returns:
- Type
- Promise
(protected) initScene_() → {Promise}
- Description:
Initializes the renderer, creates the raycaster object and starts the creation of the 3D scene.
- Source:
- Overrides:
Returns:
- Type
- Promise
(private) leaveOrbitView_() → {Promise}
- Description:
Starts the animated change from the exhibit orbit view back to the visitor view
- Source:
Returns:
- Type
- Promise
onInit()
- Description:
Component is ready and had loaded all dependencies (inherit method waitFor and sub components).
- Source:
- Overrides:
(private) openExhibitInfo_()
- Description:
Initializes the opening of the layer for the exhibit infos.
- Source:
(protected) pauseRenderer_()
- Description:
Deactivates rendering
- Source:
- Overrides:
ready() → {Promise}
- Description:
Can be called to receive a Promise that is triggered when the creation of the 3D scene is completed.
- Source:
- Overrides:
Returns:
- Type
- Promise
(protected) renderScene_(forcedRenderingopt)
- Description:
Main render process (window.requestAnimationFrame call). Updates THREE clock, framerate check, stats and 3D scene Abstract3DWorld#updateScene_
- Source:
- Overrides:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
forcedRendering |
boolean |
<optional> |
false
|
If it is set to |
(protected) resize_()
- Description:
Detects window size changes and therefore updates renderer sizes.
- Source:
- Overrides:
(private) showExhibitFrame_()
- Description:
Initializes the display of the layer for the external installation of an exhibit. Rendering is paused during display to save performance.
- Source:
(private) showNavigationHints_() → {Promise}
- Description:
Shows the different navigation hints (HintBox) for the user one after the other.
- Source:
Returns:
- Type
- Promise
(protected) startRenderScene_()
- Description:
Starts the rendering of the active 3D scene
- Source:
- Overrides:
(protected) startRenderer_()
- Description:
Activates rendering
- Source:
- Overrides:
(protected) stopRenderScene_()
- Description:
Stops the rendering of the active 3D scene
- Source:
- Overrides:
(protected) updateCameraMatrix_()
- Description:
Updates the current camera aspect based on the window size.
- Source:
- Overrides:
(protected) updateScene_(delta)
- Description:
Main call for 3D scene updates in the render process.
- Source:
- Overrides:
Parameters:
Name | Type | Description |
---|---|---|
delta |
number |