CloudSession

class cee.CloudSession()

The CloudSession’s responsibility is to manage the Viewers and the main event loop of EnvisionWeb (handleAnimationFrameCallback).

All EnvisionWeb applications need a CloudSession object. There is only need for one, even in apps with multiple viewers, views, models and remote servers.

Constructors

cee.CloudSession.constructor()
CloudSession(): CloudSession

Constructor

Returns: CloudSession

Accessors

cee.CloudSession.buildDateTimeString()
get buildDateTimeString(): string

Returns the date and time this version of EnvisionWeb was built

Returns: string

cee.CloudSession.version()
get version(): string

Returns the version of HOOPS Envision for Web

Format: Major.Minor.Patch-Build. E.g. ‘1.2.0+34145A’ or ‘1.2.0-rc1++38C14A

Returns: string

cee.CloudSession.viewerCount()
get viewerCount(): number

Returns the number of viewers in the client application.

Returns: number

Methods

cee.CloudSession.addModelToProcessingSet()
addModelToProcessingSet(model: ProcessableModel): void

Manually add a model to the set of models that need background processing

Parameters

Returns: void

cee.CloudSession.addViewer()
addViewer(canvas: HTMLCanvasElement, viewerOptions: ViewerOptions): Viewer

Adds a new Viewer to the session.

The Viewer is tied to a HTML Canvas element, and the provided canvas must be capable of rendering WebGL. Returns null if the canvas is not capable of rendering WebGL or if WebGL resources are exhausted.

A Viewer can have many Views, and all the Views within a Viewer can share WebGL resources. So, to show the same Model in two Views, using one Viewer with two Views is more efficient than using two Viewers with one View each.

A client application can contain many Viewers, but each Viewer must be linked to single unique Canvas.

Parameters

canvas: HTMLCanvasElement

viewerOptions: ViewerOptions

Returns: Viewer

cee.CloudSession.deleteAllViewers()
deleteAllViewers(): void

Deletes all viewers from the app.

Returns: void

cee.CloudSession.deleteViewerAt()
deleteViewerAt(index: number): void

Deletes the viewer at the given index.

The index must be zero based and between 0 and viewerCount - 1

Parameters

index: number

Returns: void

cee.CloudSession.destroySession()
destroySession(): void

Destroys the session object. This will delete all the viewers.

Returns: void

cee.CloudSession.getViewerArray()
getViewerArray(): readonly  Viewer[]

Returns a read only array with all viewers in the session

Returns: readonly  Viewer[]

cee.CloudSession.getViewerAt()
getViewerAt(index: number): Viewer

Returns the viewer with the given index.

The index must be zero based and between 0 and viewerCount - 1

Parameters

index: number

Returns: Viewer

cee.CloudSession.handleAnimationFrameCallback()
handleAnimationFrameCallback(highResTimestamp_ms: number): boolean

Mandatory update method for the HOOPS Envision Client.

This method must be called from a requestAnimationFrame() for animations to run and server communication to work as expected.

The standard code for doing this is:

// Setup timer to keep the session viewer up-to-date
function myAnimationFrameCallback(highResTimestamp) {
    mySession.handleAnimationFrameCallback(highResTimestamp);
    requestAnimationFrame(myAnimationFrameCallback);
}

requestAnimationFrame(myAnimationFrameCallback);

Parameters

highResTimestamp_ms: number

Returns: boolean

cee.CloudSession.removeModelFromProcessingSet()
removeModelFromProcessingSet(model: ProcessableModel): void

Remove a model that was previously added manually to the processing set

Parameters

Returns: void