ReadonlycanvasReadonlygridReadonlykeyboardReadonlyonSubscribe to get access to pointer events (mouse, touchpad etc) and to determine what (if anything) a mouse click interacted with (what object was 'picked' in the 3D scene).
BetaperformancePerformance options.
ReadonlysceneReadonlystatisticsReadonlyvisualControls the visual settings of the viewer. See VisualSettings for more information.
Controls wheter to automatically adapt the near plane of the camera to preserve precision when viewing far away IFC objects when there are no close IFC objects
Gets the current lighting settings, allowing you to change them on the fly.
Adds a mesh to the scene based on the provided geometry. If a mesh with the same ID already exists, it will be removed and replaced with the new one.
Mesh to add or replace
Babylon mesh that was added
Adds or updates the environment settings for the viewer.
AABB.
This method calculates the starting position for the camera based on the provided boundingInfo.
It ensures that the entire boundingInfo is visible and sets the maximum z-coordinate of the camera to a value that
allows everything to be visible.
Additionally, it creates a skybox and sets its position and scaling based on the boundingInfo.
The skybox is only visible if the isSkyboxEnabled property is set to true.
Adds or updates the environment settings for the viewer.
The options for the environment settings.
This method calculates the starting position for the camera based on the provided boundingInfo.
It ensures that the entire boundingInfo is visible and sets the maximum z-coordinate of the camera to a value that
allows everything to be visible.
Additionally, it creates a skybox and sets its position and scaling based on the boundingInfo.
The skybox is only visible if the isSkyboxEnabled property is set to true.
InternalCreates a renderer that that writes out the scenes depth to a render target texture which can be sampled for various uses like SSAO and line detection. Unlike Babylonjs standard depth renderer, this renderer applies a custom depth material to the IFC meshes to be able to dicard the depth writes for fragments that are invisible
Wheter or not the custom depth renderer material should write the depth linearly or logarithmic
The depth renderer
OptionalrayOrScreenCoordinate: Ray | CanvasPositionUse ViewerCamera.pick instead.
Gets the currently active mode of transparency
Enables or disables the debug layer. Will only be available if the module 'import "@twinfinity/core/internal/Debug' has also been added to the application. Adding it will generate extra .js files during bundling (which are quite large) and will increase build times. The extra files are loaded on demand though (when debug layer becomes enabled for the first time).
OptionalisEnabled: booleantrue to enable. Otherwise false. If Not specified then current state of debug layer is returned.
Promise which when resolved is true if layer is enabled. Otherwise false
Diagnostic method to measure actual GPU buffer memory usage. Call from browser console: viewer.measureGpuBufferMemory()
Use ViewerCamera.pick instead.
Enables or disables a clip plane, indexed from 1 to 6. Enabling a clip plane means that all geometry inside the clip plane will not be rendered. Note that this is only clipping for the IFC models, regular Babylon meshes needs to have clipping applied through the clip planes in Babylons scene Like this: https://doc.babylonjs.com/features/featuresDeepDive/scene/clipPlanes, the docs says that only 4 planes are available, but there are 6
An object with the options for enabling or disabling clip planes.
Set the currently used dither mode for solid objects that are dithered, never for transparent objects, even if the transparency mode is dithering
Wheter or not to discard fragments in the depth shader that are dithered, this is needed for transparent objects to not write to the depth buffer
Set the dither mode and animated frames used for dithering
What dithering mode to use, bayer uses a bayer matrix to determine which pixels to render opaque, blue noise uses a blue noise texture
How many frames to use for the dithering animation when moving the camera, if 1 then no animation is used. Works best with Blue Noise
Changes how transparency is handled for transparent IFC objects
The type of rendering that will be used for all transparent IFC objects, dithering means that pixels are rendered opaque but skipping every few pixels in a screen pattern depending on the opacity Seethrough is normal alpha blending
Forces render loop to temporarily wake up if it is sleeping
Staticcreate
Represents a TwinfinityViewer, which is responsible for rendering and interacting with a 3D scene. There can only be one TwinfinityViewer.