Skip to content

editorGlobalsRenderContext

Class: RenderContext

Hierarchy

  • RenderContext

Index

Constructors

Properties

Methods

Constructors

constructor

+ new RenderContext(editor?: Editor, options: object): RenderContext

Defined in src/renderContext/RenderContext.ts:169

Parameters:

Optional editor: Editor

Default value options: object= {}

Name Type
DisplayClass? Constructor‹AbstractDisplay
RendererClass? Constructor‹Renderer

Returns: RenderContext

Properties

Private RendererClass

RendererClass: object = WebGLRenderer

Defined in src/renderContext/RenderContext.ts:118

Renderer to be used

Type declaration:


Private afterRenderPromises

afterRenderPromises: Array‹function› = []

Defined in src/renderContext/RenderContext.ts:134

A Set of resolve functions, that will be called after rendering the next frame


Private allowSleep

allowSleep: boolean = Config.get("rendering.allowSleep")

Defined in src/renderContext/RenderContext.ts:82

Allow sleeping at all?


Private animationsToBeAdded

animationsToBeAdded: Array‹KyubAnimation‹any›› = []

Defined in src/renderContext/RenderContext.ts:76

List of animations that will be added after next frame (to ensure they start smoothly)


Private Readonly assemblyUpdateEventEmitter

assemblyUpdateEventEmitter: EventEmitterAssembly‹›› = new EventEmitter()

Defined in src/renderContext/RenderContext.ts:151


Private Readonly asyncUpdateEventEmitter

asyncUpdateEventEmitter: EventEmitter‹void› = new EventEmitter()

Defined in src/renderContext/RenderContext.ts:152


Private beforeRenderCallback

beforeRenderCallback: function | null = null

Defined in src/renderContext/RenderContext.ts:52

A callback that is called before rendering (typically a method of visualizationManager)


Private camera

camera: PerspectiveCamera

Defined in src/renderContext/RenderContext.ts:108


Private cameraMotion

cameraMotion: CameraMotion | null = null

Defined in src/renderContext/RenderContext.ts:112

The reference to camera motion performer


Private canSleep

canSleep: boolean = false

Defined in src/renderContext/RenderContext.ts:86


Private canvas

canvas: HTMLCanvasElement | null = null

Defined in src/renderContext/RenderContext.ts:100

The reference to the canvas, will be assigned in setup()


Private debouncedResize

debouncedResize: DebouncedFunc‹function›

Defined in src/renderContext/RenderContext.ts:127


Private debugRenderingHelper

debugRenderingHelper: DebugRenderingHelper | null = null

Defined in src/renderContext/RenderContext.ts:131


Private deviceOrientation

deviceOrientation: "landscape" | "portrait" = "landscape"

Defined in src/renderContext/RenderContext.ts:47


Private display

display: AbstractDisplay

Defined in src/renderContext/RenderContext.ts:115

Display that is rendered on


Private Optional editor

editor? : Editor

Defined in src/renderContext/RenderContext.ts:160


Private Readonly errorEventEmitter

errorEventEmitter: EventEmitterError = new EventEmitter()

Defined in src/renderContext/RenderContext.ts:146

When something during the renderloop crashes


Private fidelityControl

fidelityControl: FidelityControl | null = null

Defined in src/renderContext/RenderContext.ts:70

Reference to fidelity control


Private Readonly firstFrameEventEmitter

firstFrameEventEmitter: EventEmitter‹void› = new EventEmitter()

Defined in src/renderContext/RenderContext.ts:150

Once after the render loop has been completed for the first time (first frame rendered)


Private firstFrameRendered

firstFrameRendered: boolean = false

Defined in src/renderContext/RenderContext.ts:122


Private fixedTimeDelta

fixedTimeDelta: number

Defined in src/renderContext/RenderContext.ts:125


Private framesToRenderBeforeDisplay

framesToRenderBeforeDisplay: number

Defined in src/renderContext/RenderContext.ts:156


Private hintManager

hintManager: HintManager | null = null

Defined in src/renderContext/RenderContext.ts:64

Reference to an object that handles display of hints (typically HintManager)


Private initialSleepLimit

initialSleepLimit: number = 3000

Defined in src/renderContext/RenderContext.ts:85

Don't sleep for the first X ms (which prevents the editor from loading)


Private instantiationTime

instantiationTime: number

Defined in src/renderContext/RenderContext.ts:124


Private isCameraLocked

isCameraLocked: boolean = false

Defined in src/renderContext/RenderContext.ts:109


Private lastTimeStamp

lastTimeStamp: any = null

Defined in src/renderContext/RenderContext.ts:49


Private modelSubnode

modelSubnode: Object3D

Defined in src/renderContext/RenderContext.ts:158


Private needsCameraAdjustmentBeforePhysics

needsCameraAdjustmentBeforePhysics: boolean = false

Defined in src/renderContext/RenderContext.ts:143

After changes were made to objects in the scene (e.g. Plates were added), we may need to update the camera, before the next physics step. This prevents objects from flying around.


Private performanceTester

performanceTester: PerformanceTester

Defined in src/renderContext/RenderContext.ts:154


Private physicsContext

physicsContext: PhysicsContext | null = null

Defined in src/renderContext/RenderContext.ts:58

Reference to the physics context


Private physicsSimulationEnabled

physicsSimulationEnabled: boolean = true

Defined in src/renderContext/RenderContext.ts:61

Flag to set whether physics simulation should be running


Private physicsWallAdjustmentCooldownTime

physicsWallAdjustmentCooldownTime: number = Config.getAndWatch( "viewManagement.physicsWallAdjustmentCooldownTime", t => (this.physicsWallAdjustmentCooldownTime = t), ) as number

Defined in src/renderContext/RenderContext.ts:164


Private pointerControls

pointerControls: any = null

Defined in src/renderContext/RenderContext.ts:121


Private pointerEventCallback

pointerEventCallback: function | null = null

Defined in src/renderContext/RenderContext.ts:55

The callback that receives pointer events (typically a method of visualizationManager)


Private renderer

renderer: Renderer | null = null

Defined in src/renderContext/RenderContext.ts:119


Private runningAnimations

runningAnimations: Array‹KyubAnimation‹any›› = []

Defined in src/renderContext/RenderContext.ts:79

List of all currently running animations


Private scene

scene: Scene

Defined in src/renderContext/RenderContext.ts:129


Private sceneBackground

sceneBackground: SceneBackground | null = null

Defined in src/renderContext/RenderContext.ts:103

The reference to the scene background


Private screenshotCanvas

screenshotCanvas: HTMLCanvasElement = null

Defined in src/renderContext/RenderContext.ts:137

A canvas that is used to take screenshots in lower resolution than main canvas


Private sleepTimeLimit

sleepTimeLimit: number = 500

Defined in src/renderContext/RenderContext.ts:92

Only sleeps if can sleep and nothing moved for 'sleepTimeLimit'. This prevents movements to stop at turning points (e.g. bouncing ball).


Private sleeping

sleeping: boolean = true

Defined in src/renderContext/RenderContext.ts:96

If nothing changed, we can go to sleep


Private suggestionVisualizer

suggestionVisualizer: SuggestionVisualizer | null = null

Defined in src/renderContext/RenderContext.ts:67

Reference to an object that handles display of suggestions


Private timeSinceLastSleepPossible

timeSinceLastSleepPossible: number | null = null

Defined in src/renderContext/RenderContext.ts:93


Private toolFinishImmediatePhysicsWallAdjustmentTimeout

toolFinishImmediatePhysicsWallAdjustmentTimeout: Timeout

Defined in src/renderContext/RenderContext.ts:162


Private Readonly updateEventEmitter

updateEventEmitter: EventEmitter‹number› = new EventEmitter()

Defined in src/renderContext/RenderContext.ts:148

Every frame before updates and simulations are performed


Private visualizedModel

visualizedModel: VisualizedModel | null = null

Defined in src/renderContext/RenderContext.ts:106

The reference to the currently visualized model


Private wasSleeping

wasSleeping: boolean = false

Defined in src/renderContext/RenderContext.ts:97


Private zoomInAllowed

zoomInAllowed: boolean = true

Defined in src/renderContext/RenderContext.ts:169

Methods

Private _calculateTimeDelta

_calculateTimeDelta(timestamp: number): number

Defined in src/renderContext/RenderContext.ts:796

Calculates the passed time-delta regarding the lastTimestamp

Parameters:

Name Type
timestamp number

Returns: number


Private _calculateVerticalFov

_calculateVerticalFov(horizontalFov: number, aspectRatio: number): number

Defined in src/renderContext/RenderContext.ts:1029

Calculates the vertical FOV (in degrees) source: http://www.rjdown.co.uk/projects/bfbc2/fovcalculator.phps

Parameters:

Name Type Description
horizontalFov number Desired horizontal FOV (in degrees)
aspectRatio number Aspect ratio of the camera

Returns: number


Private _createCamera

_createCamera(): void

Defined in src/renderContext/RenderContext.ts:705

Returns: void


Private _createCameraMotion

_createCameraMotion(): void

Defined in src/renderContext/RenderContext.ts:701

Returns: void


Private _createRenderer

_createRenderer(): void

Defined in src/renderContext/RenderContext.ts:652

Returns: void


Private _createScene

_createScene(): void

Defined in src/renderContext/RenderContext.ts:719

Returns: void


Private _doUpdate

_doUpdate(delta: number): void

Defined in src/renderContext/RenderContext.ts:850

Parameters:

Name Type
delta number

Returns: void


Private _handleOrientationChange

_handleOrientationChange(mediaQueryList: object): void

Defined in src/renderContext/RenderContext.ts:1097

Parameters:

mediaQueryList: object

Name Type
matches boolean

Returns: void


Private _initOrientationMediaQueries

_initOrientationMediaQueries(): void

Defined in src/renderContext/RenderContext.ts:1089

Returns: void


Private _onAssemblyChange

_onAssemblyChange(): boolean

Defined in src/renderContext/RenderContext.ts:1046

Returns: boolean


Private _onAsyncUpdate

_onAsyncUpdate(): void

Defined in src/renderContext/RenderContext.ts:1041

Returns: void


Private _onToolError

_onToolError(): void

Defined in src/renderContext/RenderContext.ts:1076

Returns: void


Private _onToolSelected

_onToolSelected(): void

Defined in src/renderContext/RenderContext.ts:1087

Returns: void


Private _onToolUseFinish

_onToolUseFinish(event?: object): void

Defined in src/renderContext/RenderContext.ts:1065

Parameters:

Optional event: object

Name Type
consecutiveClick number
isClick boolean
parameters any
toolManifestation any

Returns: void


Private _onToolUseStart

_onToolUseStart(event: object): void

Defined in src/renderContext/RenderContext.ts:1050

Parameters:

event: object

Name Type
parameters any
toolManifestation IToolManifestation

Returns: void


Private _onWindowsResize

_onWindowsResize(): void

Defined in src/renderContext/RenderContext.ts:648

Wrapper around the debounced functions to fix function name to use as event callback...

Returns: void


Private _resetCameraMotionConstraints

_resetCameraMotionConstraints(): void

Defined in src/renderContext/RenderContext.ts:1078

Returns: void


Private _setupBackground

_setupBackground(): Promise‹void›

Defined in src/renderContext/RenderContext.ts:756

Returns: Promise‹void›


Private _setupHints

_setupHints(containerElement: HTMLDivElement): void

Defined in src/renderContext/RenderContext.ts:776

Parameters:

Name Type
containerElement HTMLDivElement

Returns: void


Private _setupInteraction

_setupInteraction(): void

Defined in src/renderContext/RenderContext.ts:734

Returns: void


Private _setupPhysics

_setupPhysics(): void

Defined in src/renderContext/RenderContext.ts:768

Returns: void


Private _setupSugestionsVisualizer

_setupSugestionsVisualizer(): void

Defined in src/renderContext/RenderContext.ts:787

Returns: void


Private _showCanvasWhenReady

_showCanvasWhenReady(): void

Defined in src/renderContext/RenderContext.ts:964

Implementing a delay of a few (exact value defined in Config) frames before the canvas is displayed, to skip the white screen visible when the editor is starting.

Returns: void


Private _sleepIfPossible

_sleepIfPossible(timeDelta: number, isSceneActive: boolean): void

Defined in src/renderContext/RenderContext.ts:823

Evaluates whether the renderer can sleep

Parameters:

Name Type Description
timeDelta number Time that has passed since last frame
isSceneActive boolean - Indicating that something is happening in the scene that prevents sleeping, e.g. running animations or active physics engine

Returns: void


Private _updateAnimations

_updateAnimations(delta: number): boolean

Defined in src/renderContext/RenderContext.ts:988

Parameters:

Name Type
delta number

Returns: boolean


Private _updateCameraFov

_updateCameraFov(): void

Defined in src/renderContext/RenderContext.ts:1012

Returns: void


Private _updateCameraPositionInSoundPlayer

_updateCameraPositionInSoundPlayer(): void

Defined in src/renderContext/RenderContext.ts:976

Returns: void


Private _updateRendererSize

_updateRendererSize(): void

Defined in src/renderContext/RenderContext.ts:1006

Returns: void


Private _updateVisualizedModel

_updateVisualizedModel(): object

Defined in src/renderContext/RenderContext.ts:941

Updates object visualizations (shape and transforms)

Returns: object

  • anyShapeChanged: boolean

  • anyTransformsChanged: boolean


addAnimation

addAnimation(animation: KyubAnimation‹any›): void

Defined in src/renderContext/RenderContext.ts:394

Parameters:

Name Type
animation KyubAnimation‹any›

Returns: void


addPhysicsAddOn

addPhysicsAddOn(AddOnClass: object): void

Defined in src/renderContext/RenderContext.ts:564

Parameters:

Name Type
AddOnClass object

Returns: void


adjustCameraFarPlane

adjustCameraFarPlane(): void

Defined in src/renderContext/RenderContext.ts:332

Returns: void


adjustCameraToObject

adjustCameraToObject(force: boolean, immediately: boolean): Promise‹void›

Defined in src/renderContext/RenderContext.ts:308

Parameters:

Name Type Default
force boolean false
immediately boolean false

Returns: Promise‹void›


allowZoomIn

allowZoomIn(): void

Defined in src/renderContext/RenderContext.ts:298

Returns: void


decreaseBackgroundSize

decreaseBackgroundSize(): void

Defined in src/renderContext/RenderContext.ts:374

Returns: void


disallowZoomIn

disallowZoomIn(): void

Defined in src/renderContext/RenderContext.ts:303

Returns: void


dryUpdateScene

dryUpdateScene(): Promise‹void›

Defined in src/renderContext/RenderContext.ts:435

Updates the scene, which means updating/recreating object visualizations and updating matrices without rendering or simulating physics. Use this if you changed the model/hints and need to perform a raycast or similar between rendered frames.

Returns: Promise‹void›


forceAdjustCameraToObject

forceAdjustCameraToObject(): Promise‹void›

Defined in src/renderContext/RenderContext.ts:294

Adjusts the camera to the current model

Returns: Promise‹void›


getAfterRenderPromise

getAfterRenderPromise(): Promise‹void›

Defined in src/renderContext/RenderContext.ts:587

Returns: Promise‹void›


getAssemblyUpdateEventEmitter

getAssemblyUpdateEventEmitter(): IPublicEventEmitterInterfaceAssembly

Defined in src/renderContext/RenderContext.ts:220

Returns: IPublicEventEmitterInterfaceAssembly


getAsyncUpdateEventEmitter

getAsyncUpdateEventEmitter(): IPublicEventEmitterInterface‹void›

Defined in src/renderContext/RenderContext.ts:224

Returns: IPublicEventEmitterInterface‹void›


getCamera

getCamera(): PerspectiveCamera

Defined in src/renderContext/RenderContext.ts:542

Returns: PerspectiveCamera

The camera that is being used


getCameraMotion

getCameraMotion(): CameraMotion

Defined in src/renderContext/RenderContext.ts:279

Returns: CameraMotion

CameraMotion instance that allows adjusting the camera to certain constraints, such as minimal visible AABBs.


getCanvas

getCanvas(): HTMLCanvasElement

Defined in src/renderContext/RenderContext.ts:535

Returns: HTMLCanvasElement

The canvas that is being painted on


getDebugRenderingHelper

getDebugRenderingHelper(): DebugRenderingHelper

Defined in src/renderContext/RenderContext.ts:283

Returns: DebugRenderingHelper


getDeviceOrientation

getDeviceOrientation(): "landscape" | "portrait"

Defined in src/renderContext/RenderContext.ts:204

Returns: "landscape" | "portrait"


getDisplay

getDisplay(): AbstractDisplay

Defined in src/renderContext/RenderContext.ts:622

Returns: AbstractDisplay


getErrorEventEmitter

getErrorEventEmitter(): IPublicEventEmitterInterfaceError

Defined in src/renderContext/RenderContext.ts:208

Returns: IPublicEventEmitterInterfaceError


getFirstFrameEventEmitter

getFirstFrameEventEmitter(): IPublicEventEmitterInterface‹void›

Defined in src/renderContext/RenderContext.ts:216

Returns: IPublicEventEmitterInterface‹void›


getHintManager

getHintManager(): HintManager

Defined in src/renderContext/RenderContext.ts:386

Returns: HintManager


getIsSleeping

getIsSleeping(): boolean

Defined in src/renderContext/RenderContext.ts:461

Returns: boolean


getModelSubnode

getModelSubnode(): Object3D

Defined in src/renderContext/RenderContext.ts:560

Returns: Object3D

The used THREE.Object3D that contains all ObjectVisualizations


getPhysicsContext

getPhysicsContext(): PhysicsContext

Defined in src/renderContext/RenderContext.ts:576

Returns: PhysicsContext


getRenderer

getRenderer(): WebGLRenderer

Defined in src/renderContext/RenderContext.ts:572

Returns: WebGLRenderer


getScene

getScene(): Scene

Defined in src/renderContext/RenderContext.ts:549

Returns: Scene

The THREE.Scene


getSceneBackground

getSceneBackground(): SceneBackground | null

Defined in src/renderContext/RenderContext.ts:553

Returns: SceneBackground | null


getSceneCenter

getSceneCenter(): Vector3

Defined in src/renderContext/RenderContext.ts:580

Returns: Vector3


getScreenshot

getScreenshot(maxWidth?: number): Promise‹Blob›

Defined in src/renderContext/RenderContext.ts:594

Parameters:

Name Type
maxWidth? number

Returns: Promise‹Blob›


getSize

getSize(): object

Defined in src/renderContext/RenderContext.ts:468

Returns: object

of the canvas element (which should be the render size in most cases)

  • height: number

  • width: number


getSuggestionVisualizer

getSuggestionVisualizer(): SuggestionVisualizer

Defined in src/renderContext/RenderContext.ts:287

Returns: SuggestionVisualizer


getUpdateEventEmitter

getUpdateEventEmitter(): IPublicEventEmitterInterface‹number›

Defined in src/renderContext/RenderContext.ts:212

Returns: IPublicEventEmitterInterface‹number›


increaseBackgroundSize

increaseBackgroundSize(): void

Defined in src/renderContext/RenderContext.ts:362

Returns: void


loadBackground

loadBackground(backgroundName: string): Promise‹void›

Defined in src/renderContext/RenderContext.ts:357

Parameters:

Name Type
backgroundName string

Returns: Promise‹void›


lockCamera

lockCamera(): void

Defined in src/renderContext/RenderContext.ts:626

Returns: void


loop

loop(timestamp: number): void

Defined in src/renderContext/RenderContext.ts:399

Parameters:

Name Type
timestamp number

Returns: void


onPointerEvent

onPointerEvent(event: PointerEvent, type: PointerEvents): boolean

Defined in src/renderContext/RenderContext.ts:498

Called by SceneEventFilter when the user interacts with the scene.

Parameters:

Name Type
event PointerEvent
type PointerEvents

Returns: boolean

true, if the event was handled (=do not move camera), false, if not (=move camera)


onWindowResize

onWindowResize(): void

Defined in src/renderContext/RenderContext.ts:476

Returns: void


removePhysicsAddOn

removePhysicsAddOn(AddOnClass: object): void

Defined in src/renderContext/RenderContext.ts:568

Parameters:

Name Type
AddOnClass object

Returns: void


resetCamera

resetCamera(): void

Defined in src/renderContext/RenderContext.ts:637

Undo changes to this.camera, may lack some settings

Returns: void


setBeforeRenderCallback

setBeforeRenderCallback(beforeRenderCallback: function): void

Defined in src/renderContext/RenderContext.ts:390

Parameters:

beforeRenderCallback: function

▸ (delta: number): void

Parameters:

Name Type
delta number

Returns: void


setFidelityControlEnabled

setFidelityControlEnabled(enabled: boolean): void

Defined in src/renderContext/RenderContext.ts:271

Parameters:

Name Type
enabled boolean

Returns: void


setPhysicsSimulationEnabled

setPhysicsSimulationEnabled(enabled: boolean): void

Defined in src/renderContext/RenderContext.ts:267

Parameters:

Name Type
enabled boolean

Returns: void


setPointerEventCallback

setPointerEventCallback(pointerEventCallback: function): void

Defined in src/renderContext/RenderContext.ts:505

Parameters:

pointerEventCallback: function

▸ (event: PointerEvent, type: PointerEvents): boolean

Parameters:

Name Type
event PointerEvent
type PointerEvents

Returns: void


setVisualizedModel

setVisualizedModel(visualizedModel: VisualizedModel, initBackground: boolean): void

Defined in src/renderContext/RenderContext.ts:514

Adds the scenegraph of the model

Parameters:

Name Type Default Description
visualizedModel VisualizedModel - The VisualizedModel to be displayed
initBackground boolean true -

Returns: void


setup

setup(containerElement: HTMLDivElement, canvas: HTMLCanvasElement): Promise‹void›

Defined in src/renderContext/RenderContext.ts:234

Initializes the RenderContext. Needs to be called before any rendering can be done

Parameters:

Name Type Description
containerElement HTMLDivElement The editorContainer element, which wraps all sub-elements
canvas HTMLCanvasElement -

Returns: Promise‹void›

A Promise that resolves when rendering is set up and the background is loaded.


unlockCamera

unlockCamera(): void

Defined in src/renderContext/RenderContext.ts:630

Returns: void


update

update(delta: number): void

Defined in src/renderContext/RenderContext.ts:421

Parameters:

Name Type Default
delta number 0

Returns: void


wakeUp

wakeUp(): void

Defined in src/renderContext/RenderContext.ts:451

Wakes up the renderer and starts the render loop again

Returns: void