Constructor
new CrystVis(element, width, height, rendererOptions)
An object providing a full interface to a renderer for crystallographic models
| Name | Type | Default | Description |
|---|---|---|---|
element | string | CSS-style identifier for the HTML element to put the renderer in | |
width | int | 0 | Window width |
height | int | 0 | Window height. If both this and width are set to 0, the window fits its context and automatically resizes with it |
rendererOptions | Object | Options for the renderer |
- Source
Members
displayed :ModelView
Displayed atoms
- ModelView
- Source
highlightSelected :bool
Whether the selected atoms should be highlighted with auras
- bool
- Source
(readonly) isDisposed :boolean
Whether this instance has been disposed. Once true, most methods will throw rather than silently fail.
- boolean
- Source
(readonly) model :Model
Currently loaded model
- Model
- Source
(readonly) modelList :Array
List of loaded models
- Array
- Source
(readonly) modelName :String
Name of the currently loaded model
- String
- Source
selected :ModelView
Selected atoms
- ModelView
- Source
theme :object
Theme
- object
- Source
Methods
addNotification()
Add a notification to the list of notifications to be displayed
- Source
addNotifications()
Adds all notifications to the drawing
- Source
addPrimitive(p)
Add a primitive shape to the drawing
| Name | Type | Description |
|---|---|---|
p | THREE. | Primitive to add |
- Source
clearNotifications()
Removes notifications from the drawing
- Source
deleteModel(name)
Erase a model from the recorded ones
| Name | Type | Description |
|---|---|---|
name | String | Name of the model to delete |
- Source
displayModel(name)
Render a model
| Name | Type | Default | Description |
|---|---|---|---|
name | String | null | Name of the model to display. If empty, just clear the renderer window. |
- Source
dispose()
Release all resources held by this instance: cancels the animation loop, removes all canvas event listeners, disposes OrbitControls and the THREE.WebGLRenderer, and nulls internal references. After calling this method the instance must not be used again.
- Source
getCameraState() → {Object}
Return a plain serialisable snapshot of the current camera state.
- Source
- Type:
- Object
getModelMeta(name) → {Object|null}
Return metadata stored alongside the named model: { prefix, originalName }.
| Name | Type | Description |
|---|---|---|
name | String | Model name |
- Source
- Type:
- Object |
null
getModelParameters(name) → {Object|null}
Return the loading parameters that were used when the named model was last loaded / reloaded (a clone of the merged parameter object).
| Name | Type | Description |
|---|---|---|
name | String | Model name |
- Source
- Type:
- Object |
null
getModelSource(name) → {Object|null}
Return the raw file text and format extension originally passed to loadModels() for the named model.
| Name | Type | Description |
|---|---|---|
name | String | Model name |
- Source
- Type:
- Object |
null
getScreenshotData() → {String}
Recover a data URL of a PNG screenshot of the current scene
- Source
A data URL of the PNG screenshot
- Type:
- String
loadModels(contents, format, prefix, parameters) → {Object}
Load one or more atomic models from a file's contents
| Name | Type | Default | Description |
|---|---|---|---|
contents | String | The contents of the structure file | |
format | String | cif | The file's format (cif, xyz, etc.). Default is cif. |
prefix | String | null | Prefix to use when naming the models. Default is empty. |
parameters | Object | Loading parameters:
|
- Source
Status map of the models we tried to load. Keys are the model names (strings that can be passed directly to displayModel()). Values are 0 for a successful load, or an error message string if loading failed. Example: to display the first loaded model, use visualizer.displayModel(Object.keys(loaded)[0]) and check loaded[modelName] !== 0 to detect errors.
- Type:
- Object
onAtomBox(callback)
Set a callback function for an event where a user drags a box around multiple atoms. The function should take as arguments a ModelView including the atoms in the box:
function callback(view) { ... }
| Name | Type | Default | Description |
|---|---|---|---|
callback | function | null | Callback function for the event. Passing "null" restores default behaviour |
- Source
onAtomClick(callback, modifiers)
Set a callback function for an event where a user clicks on an atom. The function should take as arguments the atom image for the clicked atom and the event object:
function callback(atom, event) { ... }
| Name | Type | Default | Description |
|---|---|---|---|
callback | function | null | Callback function for the event. Passing "null" restores default behaviour |
modifiers | int | Click event. Use the following flags to define it:
For example, CrystVis.LEFT_CLICK + CrystVis.SHIFT_BUTTON defines the event for a click while the Shift key is pressed. |
- Source
onCameraChange(callback) → {function}
Subscribe to camera-change events (rotate, pan, zoom). The callback receives a snapshot identical to CrystVis#getCameraState.
| Name | Type | Description |
|---|---|---|
callback | function |
|
- Source
Unsubscribe function
- Type:
- function
onDisplayChange(callback) → {function}
Subscribe to display-change events fired whenever displayModel() completes. The callback receives the name of the newly displayed model (or null when cleared).
| Name | Type | Description |
|---|---|---|
callback | function |
|
- Source
Unsubscribe function
- Type:
- function
onModelListChange(callback) → {function}
Subscribe to model-list change events (model added or deleted). The callback receives the new list of model names.
| Name | Type | Description |
|---|---|---|
callback | function |
|
- Source
Unsubscribe function
- Type:
- function
reloadModel(name, parameters)
Reload a model, possibly with new parameters
| Name | Type | Description |
|---|---|---|
name | String | Name of the model to reload. |
parameters | Object | Loading parameters as in .loadModels() |
- Source
removePrimitive(p)
Remove a primitive shape from the drawing
| Name | Type | Description |
|---|---|---|
p | THREE. | Primitive to remove |
- Source
setCameraState(state)
Restore a camera snapshot produced by CrystVis#getCameraState. Safe to call after displayModel().
| Name | Type | Description |
|---|---|---|
state |
- Source
unloadAll()
Remove all loaded models and reset the view in a single atomic operation (only one render pass after everything is cleared, unlike calling deleteModel() in a loop).
- Source