Skip to main content

MoleculeRenderer

megane-viewer


megane-viewer / MoleculeRenderer

Class: MoleculeRenderer

Defined in: renderer/MoleculeRenderer.ts:42

Constructors

Constructor

new MoleculeRenderer(): MoleculeRenderer

Returns

MoleculeRenderer

Methods

clearAtomOverrides()

clearAtomOverrides(): void

Defined in: renderer/MoleculeRenderer.ts:461

Clear all per-atom overrides, reverting to global uniforms.

Returns

void


clearBondOpacityOverrides()

clearBondOpacityOverrides(): void

Defined in: renderer/MoleculeRenderer.ts:485

Clear per-bond opacity overrides, reverting to global opacity.

Returns

void


clearPolyhedra()

clearPolyhedra(): void

Defined in: renderer/MoleculeRenderer.ts:371

Clear all polyhedra from the scene.

Returns

void


clearSelection()

clearSelection(): void

Defined in: renderer/MoleculeRenderer.ts:1044

Clear all selected atoms.

Returns

void


dispose()

dispose(): void

Defined in: renderer/MoleculeRenderer.ts:1234

Clean up all resources.

Returns

void


endAxesDrag()

endAxesDrag(): void

Defined in: renderer/MoleculeRenderer.ts:556

End the axes-inset drag.

Returns

void


fitToViewAll()

fitToViewAll(): void

Defined in: renderer/MoleculeRenderer.ts:422

Fit camera to show all structures (from all layers + primary snapshot). Call after loading snapshots into layers.

Returns

void


getCamera()

getCamera(): PerspectiveCamera | OrthographicCamera

Defined in: renderer/MoleculeRenderer.ts:908

Get the active camera.

Returns

PerspectiveCamera | OrthographicCamera


getCanvas()

getCanvas(): HTMLCanvasElement | null

Defined in: renderer/MoleculeRenderer.ts:898

Get the canvas element for event listener attachment.

Returns

HTMLCanvasElement | null


getCurrentPositionsCopy()

getCurrentPositionsCopy(): Float32Array<ArrayBufferLike> | null

Defined in: renderer/MoleculeRenderer.ts:993

Get a copy of current atom positions (public, for external use).

Returns

Float32Array<ArrayBufferLike> | null


getLabelOverlay()

getLabelOverlay(): LabelOverlay | null

Defined in: renderer/MoleculeRenderer.ts:918

Get the label overlay canvas.

Returns

LabelOverlay | null


getLayer()

getLayer(layerId): StructureLayer | undefined

Defined in: renderer/MoleculeRenderer.ts:390

Get an existing structure layer (or undefined).

Parameters

layerId

string

Returns

StructureLayer | undefined


getLayerIds()

getLayerIds(): string[]

Defined in: renderer/MoleculeRenderer.ts:404

Get all current layer IDs.

Returns

string[]


getMeasurement()

getMeasurement(): Measurement | null

Defined in: renderer/MoleculeRenderer.ts:1050

Compute the current geometric measurement based on selected atoms.

Returns

Measurement | null


getOrCreateLayer()

getOrCreateLayer(layerId): StructureLayer

Defined in: renderer/MoleculeRenderer.ts:380

Get or create a structure layer for a given node ID.

Parameters

layerId

string

Returns

StructureLayer


getRenderer()

getRenderer(): WebGLRenderer

Defined in: renderer/MoleculeRenderer.ts:913

Get the WebGL renderer.

Returns

WebGLRenderer


getScene()

getScene(): Scene

Defined in: renderer/MoleculeRenderer.ts:903

Get the Three.js scene.

Returns

Scene


hasCell()

hasCell(): boolean

Defined in: renderer/MoleculeRenderer.ts:511

Check if cell data exists.

Returns

boolean


hasCellAxes()

hasCellAxes(): boolean

Defined in: renderer/MoleculeRenderer.ts:568

Check if cell axes data exists.

Returns

boolean


hitTestAxesInset()

hitTestAxesInset(cssX, cssY): boolean

Defined in: renderer/MoleculeRenderer.ts:530

Returns true if the CSS-pixel coordinate hits the axes inset.

Parameters

cssX

number

cssY

number

Returns

boolean


isAxesDragging()

isAxesDragging(): boolean

Defined in: renderer/MoleculeRenderer.ts:563

Whether an axes drag is in progress.

Returns

boolean


loadPolyhedra()

loadPolyhedra(data): void

Defined in: renderer/MoleculeRenderer.ts:362

Load polyhedra mesh data for rendering.

Parameters

data

MeshData

Returns

void


loadSnapshot()

loadSnapshot(snapshot): void

Defined in: renderer/MoleculeRenderer.ts:219

Load a molecular snapshot (topology + positions).

Parameters

snapshot

Snapshot

Returns

void


mount()

mount(container): void

Defined in: renderer/MoleculeRenderer.ts:117

Mount the viewer into a DOM element.

Parameters

container

HTMLElement

Returns

void


moveAxesDrag()

moveAxesDrag(cssX, cssY): boolean

Defined in: renderer/MoleculeRenderer.ts:545

Continue an axes-inset drag. Returns true if currently dragging.

Parameters

cssX

number

cssY

number

Returns

boolean


raycastAtPixel()

raycastAtPixel(clientX, clientY): HoverInfo

Defined in: renderer/MoleculeRenderer.ts:1006

Perform a pick at the given screen coordinates using CPU screen-space projection.

Parameters

clientX

number

clientY

number

Returns

HoverInfo


removeInactiveLayers()

removeInactiveLayers(activeIds): void

Defined in: renderer/MoleculeRenderer.ts:409

Remove layers not in the given set of active IDs.

Parameters

activeIds

Set<string>

Returns

void


removeLayer()

removeLayer(layerId): void

Defined in: renderer/MoleculeRenderer.ts:395

Remove a structure layer and dispose its resources.

Parameters

layerId

string

Returns

void


renderSingleFrame()

renderSingleFrame(): void

Defined in: renderer/MoleculeRenderer.ts:926

Render a single frame synchronously at the current (or custom) size. Used for image/video capture outside the rAF loop.

Returns

void


resetView()

resetView(): void

Defined in: renderer/MoleculeRenderer.ts:612

Reset view to fit all atoms.

Returns

void


resizeForCapture()

resizeForCapture(width, height): () => void

Defined in: renderer/MoleculeRenderer.ts:958

Temporarily resize the renderer for capture, suppressing auto-resize. Returns a restore function to call after capture is complete.

Parameters

width

number

height

number

Returns

() => void


setAtomOpacity()

setAtomOpacity(opacity): void

Defined in: renderer/MoleculeRenderer.ts:445

Set atom opacity (independent of bonds).

Parameters

opacity

number

Returns

void


setAtomOpacityOverrides()

setAtomOpacityOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:456

Set per-atom opacity overrides from selection pipeline.

Parameters

overrides

Float32Array

Returns

void


setAtomScale()

setAtomScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:437

Set atom radius scale multiplier.

Parameters

scale

number

Returns

void


setAtomScaleOverrides()

setAtomScaleOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:451

Set per-atom scale overrides from selection pipeline.

Parameters

overrides

Float32Array

Returns

void


setAtomsVisible()

setAtomsVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:490

Toggle atom visibility.

Parameters

visible

boolean

Returns

void


setBondOpacity()

setBondOpacity(opacity): void

Defined in: renderer/MoleculeRenderer.ts:474

Set bond opacity (independent of atoms).

Parameters

opacity

number

Returns

void


setBondOpacityOverrides()

setBondOpacityOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:480

Apply per-bond opacity overrides (one value per logical bond).

Parameters

overrides

Float32Array

Returns

void


setBondScale()

setBondScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:466

Set bond radius scale multiplier.

Parameters

scale

number

Returns

void


setBondsVisible()

setBondsVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:497

Toggle bond visibility.

Parameters

visible

boolean

Returns

void


setCellAxesVisible()

setCellAxesVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:516

Toggle cell axes indicator visibility.

Parameters

visible

boolean

Returns

void


setCellVisible()

setCellVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:504

Toggle simulation cell visibility.

Parameters

visible

boolean

Returns

void


setLabels()

setLabels(labels): void

Defined in: renderer/MoleculeRenderer.ts:347

Set per-atom labels for overlay display.

Parameters

labels

string[] | null

Returns

void


setPerspective()

setPerspective(enabled): void

Defined in: renderer/MoleculeRenderer.ts:861

Switch between orthographic and perspective projection.

Parameters

enabled

boolean

Returns

void


setPivotMarkerVisible()

setPivotMarkerVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:523

Toggle rotation-center marker visibility.

Parameters

visible

boolean

Returns

void


setRotationCenter()

setRotationCenter(x, y, z, animate?): void

Defined in: renderer/MoleculeRenderer.ts:623

Set the rotation center (orbit target) to the given world coordinates.

Parameters

x

number

y

number

z

number

animate?

boolean = true

When true (default), smoothly animates the transition over PIVOT_ANIM_DURATION_MS. Pass false to update synchronously (legacy behaviour). The clicked atom is animated to the screen center.

Returns

void


setSelection()

setSelection(atomIndices): SelectionState

Defined in: renderer/MoleculeRenderer.ts:1037

Set selected atoms directly (for external triggers). Returns new selection state.

Parameters

atomIndices

number[]

Returns

SelectionState


setVectors()

setVectors(vectors): void

Defined in: renderer/MoleculeRenderer.ts:352

Set per-atom vector data for arrow display.

Parameters

vectors

Float32Array<ArrayBufferLike> | null

Returns

void


setVectorScale()

setVectorScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:357

Set arrow scale multiplier.

Parameters

scale

number

Returns

void


setViewInsets()

setViewInsets(left, right): void

Defined in: renderer/MoleculeRenderer.ts:832

Set pixel insets for overlay panels that occlude viewport edges.

Parameters

left

number

number

Returns

void


startAxesDrag()

startAxesDrag(cssX, cssY): void

Defined in: renderer/MoleculeRenderer.ts:536

Begin an axes-inset drag at the given CSS coordinates.

Parameters

cssX

number

cssY

number

Returns

void


toggleAtomSelection()

toggleAtomSelection(atomIndex): SelectionState

Defined in: renderer/MoleculeRenderer.ts:1022

Toggle atom selection (right-click). Returns new selection state.

Parameters

atomIndex

number

Returns

SelectionState


updateBonds()

updateBonds(bonds, bondOrders): void

Defined in: renderer/MoleculeRenderer.ts:297

Replace bond data and re-render bonds without resetting the camera. Used for per-frame bond recalculation (e.g. distance-based bonds).

Parameters

bonds

Uint32Array

bondOrders

Uint8Array<ArrayBufferLike> | null

Returns

void


updateBondsExt()

updateBondsExt(bonds, bondOrders, positions, elements, nAtoms): void

Defined in: renderer/MoleculeRenderer.ts:321

Replace bond data with optional extended positions/elements (PBC ghost atoms). When positions/elements are provided, they include ghost atoms appended to the original arrays, and bond indices may reference those ghost atoms.

Parameters

bonds

Uint32Array

bondOrders

Uint8Array<ArrayBufferLike> | null

positions

Float32Array<ArrayBufferLike> | null

elements

Uint8Array<ArrayBufferLike> | null

nAtoms

number

Returns

void


updateFrame()

updateFrame(frame): void

Defined in: renderer/MoleculeRenderer.ts:278

Update positions from a trajectory frame.

Parameters

frame

Frame

Returns

void