MoleculeRenderer
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
Returns
void
loadSnapshot()
loadSnapshot(
snapshot):void
Defined in: renderer/MoleculeRenderer.ts:415
Load a molecular snapshot (topology + positions).
Parameters
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
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
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
right
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
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
Returns
void