Skip to content

editor › Globals › RenderContext

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: EventEmitter‹Assembly‹›› = 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: EventEmitter‹Error› = 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(): IPublicEventEmitterInterface‹Assembly›

Defined in src/renderContext/RenderContext.ts:220

Returns: IPublicEventEmitterInterface‹Assembly›


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(): IPublicEventEmitterInterface‹Error›

Defined in src/renderContext/RenderContext.ts:208

Returns: IPublicEventEmitterInterface‹Error›


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