lib/visualizer.js~ CrystVis

An object providing a full interface to a renderer for crystallographic models

Constructor

new CrystVis(element, width, height, rendererOptions)

An object providing a full interface to a renderer for crystallographic models

Parameters:
NameTypeDefaultDescription
elementstring

CSS-style identifier for the HTML element to put the renderer in

widthint0

Window width

heightint0

Window height. If both this and width are set to 0, the window fits its context and automatically resizes with it

rendererOptionsObject

Options for the renderer

Members

displayed :ModelView

Displayed atoms

Type:
  • ModelView

highlightSelected :bool

Whether the selected atoms should be highlighted with auras

Type:
  • bool

(readonly) model :Model

Currently loaded model

Type:
  • Model

(readonly) modelList :Array

List of loaded models

Type:
  • Array

(readonly) modelName :String

Name of the currently loaded model

Type:
  • String

selected :ModelView

Selected atoms

Type:
  • ModelView

theme :object

Theme

Type:
  • object

Methods

addNotification()

Add a notification to the list of notifications to be displayed

addNotifications()

Adds all notifications to the drawing

addPrimitive(p)

Add a primitive shape to the drawing

Parameters:
NameTypeDescription
pTHREE.Object3D

Primitive to add

centerCamera(center, shift)

Center the camera on a given point

Parameters:
NameTypeDescription
centerArray.<float>

Point in model space that the orbiting camera should be centred on and look at

shiftArray.<float>

Shift (in units of width/height of the canvas) with which the center of the camera should be rendered with respect to the center of the canvas

clearNotifications()

Removes notifications from the drawing

deleteModel(name)

Erase a model from the recorded ones

Parameters:
NameTypeDescription
nameString

Name of the model to delete

displayModel(name)

Render a model

Parameters:
NameTypeDefaultDescription
nameStringnull

Name of the model to display. If empty, just clear the renderer window.

getScreenshotData() → {String}

Recover a data URL of a PNG screenshot of the current scene

Returns:

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

Parameters:
NameTypeDefaultDescription
contentsString

The contents of the structure file

formatStringcif

The file's format (cif, xyz, etc.). Default is cif.

prefixStringnull

Prefix to use when naming the models. Default is empty.

parametersObject

Loading parameters:

  • supercell: supercell size (only used if the structure is periodic)
  • molecularCrystal: if true, try to make the model load completing molecules across periodic boundaries
  • useNMRActiveIsotopes: if true, all isotopes are set by default to the most common one with non-zero spin
  • vdwScaling: scale van der Waals radii by a constant factor
  • vdwElementScaling: table of per-element factors to scale VdW radii by
Returns:

Names of the models we tried to load, and values of true/false for successful loading or not

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) { ... }

Parameters:
NameTypeDefaultDescription
callbackfunctionnull

Callback function for the event. Passing "null" restores default behaviour

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) { ... }

Parameters:
NameTypeDefaultDescription
callbackfunctionnull

Callback function for the event. Passing "null" restores default behaviour

modifiersint

Click event. Use the following flags to define it:

  • CrystVis.LEFT_CLICK
  • CrystVis.RIGHT_CLICK
  • CrystVis.MIDDLE_CLICK
  • CrystVis.CTRL_BUTTON
  • CrystVis.ALT_BUTTON
  • CrystVis.SHIFT_BUTTON
  • CrystVis.CMD_BUTTON

For example, CrystVis.LEFT_CLICK + CrystVis.SHIFT_BUTTON defines the event for a click while the Shift key is pressed.

reloadModel(name, parameters)

Reload a model, possibly with new parameters

Parameters:
NameTypeDescription
nameString

Name of the model to reload.

parametersObject

Loading parameters as in .loadModels()

removePrimitive(p)

Remove a primitive shape from the drawing

Parameters:
NameTypeDescription
pTHREE.Object3D

Primitive to remove