Skip to main content

MoleculeRenderer

megane-viewer


megane-viewer / MoleculeRenderer

Class: MoleculeRenderer

Defined in: renderer/MoleculeRenderer.ts:189

Constructors

Constructor

new MoleculeRenderer(): MoleculeRenderer

Returns

MoleculeRenderer

Methods

applyAtomColorOverrides()

applyAtomColorOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:768

Apply per-atom RGB overrides for the primary structure. Null reverts to the default CPK palette for every atom. Identity comparison short-circuits the GPU upload when the same buffer reference is supplied repeatedly.

Parameters

overrides

Float32Array<ArrayBufferLike> | null

Returns

void


applyCameraState()

applyCameraState(state): void

Defined in: renderer/MoleculeRenderer.ts:1754

Restore camera to a previously saved state.

Parameters

state

MeganeCameraState

Returns

void


clearAtomOverrides()

clearAtomOverrides(): void

Defined in: renderer/MoleculeRenderer.ts:745

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

Returns

void


clearBondOpacityOverrides()

clearBondOpacityOverrides(): void

Defined in: renderer/MoleculeRenderer.ts:804

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

Returns

void


clearPolyhedra()

clearPolyhedra(): void

Defined in: renderer/MoleculeRenderer.ts:655

Clear all polyhedra from the scene.

Returns

void


clearSelection()

clearSelection(): void

Defined in: renderer/MoleculeRenderer.ts:1459

Clear all selected atoms.

Returns

void


dispose()

dispose(): void

Defined in: renderer/MoleculeRenderer.ts:1664

Clean up all resources.

Returns

void


endAxesDrag()

endAxesDrag(): void

Defined in: renderer/MoleculeRenderer.ts:976

End the axes-inset drag.

Returns

void


fitToViewAll()

fitToViewAll(): void

Defined in: renderer/MoleculeRenderer.ts:706

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:1315

Get the active camera.

Returns

PerspectiveCamera | OrthographicCamera


getCameraState()

getCameraState(): MeganeCameraState | null

Defined in: renderer/MoleculeRenderer.ts:1741

Read current camera state. Returns null before mount.

Returns

MeganeCameraState | null


getCanvas()

getCanvas(): HTMLCanvasElement | null

Defined in: renderer/MoleculeRenderer.ts:1305

Get the canvas element for event listener attachment.

Returns

HTMLCanvasElement | null


getCurrentPositionsCopy()

getCurrentPositionsCopy(): Float32Array<ArrayBufferLike> | null

Defined in: renderer/MoleculeRenderer.ts:1408

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

Returns

Float32Array<ArrayBufferLike> | null


getLabelOverlay()

getLabelOverlay(): LabelOverlay | null

Defined in: renderer/MoleculeRenderer.ts:1325

Get the label overlay canvas.

Returns

LabelOverlay | null


getLayer()

getLayer(layerId): StructureLayer | undefined

Defined in: renderer/MoleculeRenderer.ts:674

Get an existing structure layer (or undefined).

Parameters

layerId

string

Returns

StructureLayer | undefined


getLayerIds()

getLayerIds(): string[]

Defined in: renderer/MoleculeRenderer.ts:688

Get all current layer IDs.

Returns

string[]


getMeasurement()

getMeasurement(): Measurement | null

Defined in: renderer/MoleculeRenderer.ts:1465

Compute the current geometric measurement based on selected atoms.

Returns

Measurement | null


getOrCreateLayer()

getOrCreateLayer(layerId): StructureLayer

Defined in: renderer/MoleculeRenderer.ts:664

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

Parameters

layerId

string

Returns

StructureLayer


getRenderer()

getRenderer(): WebGLRenderer

Defined in: renderer/MoleculeRenderer.ts:1320

Get the WebGL renderer.

Returns

WebGLRenderer


getScene()

getScene(): Scene

Defined in: renderer/MoleculeRenderer.ts:1310

Get the Three.js scene.

Returns

Scene


hasCell()

hasCell(): boolean

Defined in: renderer/MoleculeRenderer.ts:931

Check if cell data exists.

Returns

boolean


hasCellAxes()

hasCellAxes(): boolean

Defined in: renderer/MoleculeRenderer.ts:988

Check if cell axes data exists.

Returns

boolean


hitTestAxesInset()

hitTestAxesInset(cssX, cssY): boolean

Defined in: renderer/MoleculeRenderer.ts:950

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:983

Whether an axes drag is in progress.

Returns

boolean


loadPolyhedra()

loadPolyhedra(data): void

Defined in: renderer/MoleculeRenderer.ts:646

Load polyhedra mesh data for rendering.

Parameters

data

MeshData

Returns

void


loadSnapshot()

loadSnapshot(snapshot): void

Defined in: renderer/MoleculeRenderer.ts:415

Load a molecular snapshot (topology + positions).

Parameters

snapshot

Snapshot

Returns

void


mount()

mount(container): void

Defined in: renderer/MoleculeRenderer.ts:306

Mount the viewer into a DOM element.

Parameters

container

HTMLElement

Returns

void


moveAxesDrag()

moveAxesDrag(cssX, cssY): boolean

Defined in: renderer/MoleculeRenderer.ts:965

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:1421

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:693

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:679

Remove a structure layer and dispose its resources.

Parameters

layerId

string

Returns

void


renderSingleFrame()

renderSingleFrame(): void

Defined in: renderer/MoleculeRenderer.ts:1333

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

Returns

void


resetCamera()

resetCamera(): void

Defined in: renderer/MoleculeRenderer.ts:1717

Re-fit the camera to the current snapshot's bounding box.

Returns

void


resetView()

resetView(): void

Defined in: renderer/MoleculeRenderer.ts:1032

Reset view to fit all atoms.

Returns

void


resizeForCapture()

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

Defined in: renderer/MoleculeRenderer.ts:1367

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:729

Set atom opacity (independent of bonds).

Parameters

opacity

number

Returns

void


setAtomOpacityOverrides()

setAtomOpacityOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:740

Set per-atom opacity overrides from selection pipeline.

Parameters

overrides

Float32Array

Returns

void


setAtomScale()

setAtomScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:721

Set atom radius scale multiplier.

Parameters

scale

number

Returns

void


setAtomScaleOverrides()

setAtomScaleOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:735

Set per-atom scale overrides from selection pipeline.

Parameters

overrides

Float32Array

Returns

void


setAtomsVisible()

setAtomsVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:809

Toggle atom visibility.

Parameters

visible

boolean

Returns

void


setBackgroundColor()

setBackgroundColor(hexColor): void

Defined in: renderer/MoleculeRenderer.ts:1402

Update the Three.js scene and canvas background color (e.g. when theme changes).

Parameters

hexColor

number

Returns

void


setBondOpacity()

setBondOpacity(opacity): void

Defined in: renderer/MoleculeRenderer.ts:758

Set bond opacity (independent of atoms).

Parameters

opacity

number

Returns

void


setBondOpacityOverrides()

setBondOpacityOverrides(overrides): void

Defined in: renderer/MoleculeRenderer.ts:799

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

Parameters

overrides

Float32Array

Returns

void


setBondScale()

setBondScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:750

Set bond radius scale multiplier.

Parameters

scale

number

Returns

void


setBondsVisible()

setBondsVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:912

Set whether the active pipeline emits bonds for the primary structure. The bond mesh is only shown when this AND the current representation (atoms/both) both call for bonds — otherwise switching templates would resurface stale bond geometry once the representation toggles back to atoms.

Parameters

visible

boolean

Returns

void


setCameraChangeCallback()

setCameraChangeCallback(cb): void

Defined in: renderer/MoleculeRenderer.ts:1736

Register a callback invoked after each user camera interaction ends.

Parameters

cb

(() => void) | null

Returns

void


setCameraMode()

setCameraMode(mode): void

Defined in: renderer/MoleculeRenderer.ts:1711

Switch projection mode by name (wraps setPerspective for symmetry).

Parameters

mode

MeganeCameraMode

Returns

void


setCellAxesVisible()

setCellAxesVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:936

Toggle cell axes indicator visibility.

Parameters

visible

boolean

Returns

void


setCellVisible()

setCellVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:924

Toggle simulation cell visibility.

Parameters

visible

boolean

Returns

void


setLabels()

setLabels(labels): void

Defined in: renderer/MoleculeRenderer.ts:631

Set per-atom labels for overlay display.

Parameters

labels

string[] | null

Returns

void


setPerspective()

setPerspective(enabled): void

Defined in: renderer/MoleculeRenderer.ts:1268

Switch between orthographic and perspective projection.

Parameters

enabled

boolean

Returns

void


setPivotMarkerVisible()

setPivotMarkerVisible(visible): void

Defined in: renderer/MoleculeRenderer.ts:943

Toggle rotation-center marker visibility.

Parameters

visible

boolean

Returns

void


setRepresentationByAtom()

setRepresentationByAtom(modes): void

Defined in: renderer/MoleculeRenderer.ts:870

Apply a per-atom representation: atoms flagged "line" are drawn by the line renderer while every other atom keeps the global mesh representation (setRepresentationType). This enables mixed views such as "show the water as lines while the rest stays ball-and-stick". Pass null to revert to the uniform global representation.

Must run after setRepresentationType, which establishes the base mesh mode and reloads the line geometry; this overlays the per-atom split on top.

Parameters

modes

RepresentationType[] | null

Returns

void


setRepresentationType()

setRepresentationType(type): void

Defined in: renderer/MoleculeRenderer.ts:823

Switch between atom/bond and cartoon representation modes. "atoms" – classic ball-and-stick (default) "cartoon" – Cα backbone only; atoms/bonds hidden "both" – cartoon overlaid on atoms/bonds "surface" – solvent-accessible surface only "line" – VMD/PyMOL-style thin wireframe lines; atoms/bonds meshes hidden

Parameters

type

RepresentationType

Returns

void


setRotationCenter()

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

Defined in: renderer/MoleculeRenderer.ts:1043

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:1452

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:636

Set per-atom vector data for arrow display.

Parameters

vectors

Float32Array<ArrayBufferLike> | null

Returns

void


setVectorScale()

setVectorScale(scale): void

Defined in: renderer/MoleculeRenderer.ts:641

Set arrow scale multiplier.

Parameters

scale

number

Returns

void


setViewInsets()

setViewInsets(left, right): void

Defined in: renderer/MoleculeRenderer.ts:1239

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:956

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

Parameters

cssX

number

cssY

number

Returns

void


testGetCameraState()

testGetCameraState(): MeganeCameraState | null

Defined in: renderer/MoleculeRenderer.ts:1772

Read camera state for tests. Returns null before mount/snapshot.

Returns

MeganeCameraState | null


testGetProjectedAtomPositions()

testGetProjectedAtomPositions(): MeganeProjectedAtom[]

Defined in: renderer/MoleculeRenderer.ts:1802

Project every atom of the primary snapshot to viewer-space pixels.

Returns

MeganeProjectedAtom[]


testGetVisibleSubsystems()

testGetVisibleSubsystems(): MeganeSubsystemVisibility

Defined in: renderer/MoleculeRenderer.ts:1785

Aggregate visibility booleans for each renderer subsystem.

Returns

MeganeSubsystemVisibility


toggleAtomSelection()

toggleAtomSelection(atomIndex): SelectionState

Defined in: renderer/MoleculeRenderer.ts:1437

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

Parameters

atomIndex

number

Returns

SelectionState


updateBonds()

updateBonds(bonds, bondOrders): void

Defined in: renderer/MoleculeRenderer.ts:560

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:582

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:528

Update positions from a trajectory frame.

Parameters

frame

Frame

Returns

void