Home Reference Source
public class | source

Atom

Indirect Subclass:

GitHubMolecule

This class is the prototype for all atoms.

Constructor Summary

Public Constructor
public

constructor(values: object)

The constructor function.

Member Summary

Public Members
public

[key]: *

Assign each of the values in values as this.value

public

A warning message displayed next to the atom.

public

A function which can be called to cancel the processing being done for this atom.

public

This atom's current color

public

This atom's default color (ie when not selected or processing)

public

A description of this atom

public

inputs: array

An array of all of the input attachment points connected to this atom

public

A flag to indicate if this atom is currently being dragged on the screen.

public

This atom's name

public

This atom's output attachment point if it has one

public

This atom's parent, usually the molecule which contains this atom

public

The path which contains the geometry represented by this atom

public

A flag to indicate if the atom is currently computing a new output.

public

This atom's radius as displayed on the screen is 1/72 width

public

A flag to indicate if this atom is currently selected

public

This atom's color when selected

public

A flag to indicate if we are hovering over this atom.

public

The color currently used for strokes

public

This atom's unique ID. Often overwritten later when loading

public

This atom's value...Is can this be done away with? Are we basically storing the value in the output now?

public

The X cordinate of this atom

public

The Y cordinate of this atom

Method Summary

Public Methods
public

addIO(type: boolean, name: string, target: object, valueType: string, defaultValue: object)

Adds a new attachment point to this atom

public

Calls a worker thread to compute the atom's value.

public

Starts propagation placeholder.

public

census(): number[]

Returns an array of length two indicating that this is one atom and if it is waiting to be computed

public

Clears the alert message attached to this atom.

public

clickDown(x: number, y: number, clickProcessed: boolean): *

Set the atom's response to a mouse click. This usually means selecting the atom and displaying it's contents in 3D

public

Set the atom's response to a mouse click and drag. Moves the atom around the screen.

public

Set the atom's response to a mouse click up. If the atom is moving this makes it stop moving.

public

createButton(list: object, parent: object, buttonText: string, functionToCall: object)

Creates button.

public

createCheckbox(list: object, buttonText: string, -: boolean, functionToCall: object)

Creates button.

public

createDropDown(list: object, parent: object, options: array, selectedOption: number, description: string, Callback: object)

Creates dropdown with multiple options to select.

public

createEditableValueListItem(list: object, object: object, key: string, label: string, resultShouldBeNumber: boolean, callBack: object)

Creates an editable HTML item to set the value of an object element.

public

createFileUpload(list: object, parent: object, buttonText: string, functionToCall: object)

Creates file upload button.

public

Creates a html representation of the passed text.

public

createNonEditableValueListItem(list: object, object: object, key: string, label: string)

Creates an non-editable HTML item to set the value of an object element.

public

Set's the output value and shows the atom output on the 3D view.

public

deleteNode(backgroundClickAfter: boolean, deletePath: boolean, silent: boolean)

Delete this atom.

public

Displays the atom in 3D and sets the output.

public

Set the atom's response to a mouse double click. By default this isn't to do anything other than mark the double click as handled.

public

draw(drawType: *)

Draws the atom on the screen

public

findIOValue(ioName: string): *

Find the value of an input for with a given name.

public

Generates the path for this atom from it's location in the graph

public

Initialized the sidebar with a title and create the HTML object.

public

Set the atom's response to a key press. Is used to delete the atom if it is selected.

public

loadTree(): *

Sets all the input and output values to match their associated atoms.

public

removeIO(type: boolean, name: string, target: object, silent: object)

Removes an attachment point from an atom.

public

requestReadme(): *[]

Return any contribution from this atom to the README file

public

selectBox(x: *, y: *, xEnd: *, yEnd: *)

Delineates bounds for selection box.

public

Send the value of this atom to the 3D display.

public

serialize(offset: {"x": number, "y": number}): *

Create an object containing the information about this atom that we want to save.

public

setAlert(message: string)

Set an alert to display next to the atom.

public

setValues(values: object)

Applies each of the passed values to this as this.x

public

update()

Runs with each frame to draw the atom.

public

Updates the side bar to display information about the atom.

public

Token update value function to give each atom one by default

public

Sets the atom to wait on coming information.

public

walkBackForConstants(callback: *)

Used to walk back out the tree generating a list of constants...used for evolve

Public Constructors

public constructor(values: object) source

The constructor function.

Params:

NameTypeAttributeDescription
values object

An array of values passed in which will be assigned to the class as this.x

Public Members

public [key]: * source

Assign each of the values in values as this.value

public alertMessage: string source

A warning message displayed next to the atom. Put text in here to have a warning automatically show up. Cleared each time the output is regenerated.

public cancelProcessing: function source

A function which can be called to cancel the processing being done for this atom.

public color: string source

This atom's current color

public defaultColor: string source

This atom's default color (ie when not selected or processing)

public description: string source

A description of this atom

public inputs: array source

An array of all of the input attachment points connected to this atom

public isMoving: boolean source

A flag to indicate if this atom is currently being dragged on the screen.

public name: string source

This atom's name

public output: object source

This atom's output attachment point if it has one

public parentMolecule: object source

This atom's parent, usually the molecule which contains this atom

public path: string source

The path which contains the geometry represented by this atom

public processing: boolean source

A flag to indicate if the atom is currently computing a new output. Turns the molecule blue.

public radius: number source

This atom's radius as displayed on the screen is 1/72 width

public selected: boolean source

A flag to indicate if this atom is currently selected

public selectedColor: string source

This atom's color when selected

public showHover: boolean source

A flag to indicate if we are hovering over this atom.

public strokeColor: string source

The color currently used for strokes

public uniqueID: number source

This atom's unique ID. Often overwritten later when loading

public value: object source

This atom's value...Is can this be done away with? Are we basically storing the value in the output now?

public x: number source

The X cordinate of this atom

public y: number source

The Y cordinate of this atom

Public Methods

public addIO(type: boolean, name: string, target: object, valueType: string, defaultValue: object) source

Adds a new attachment point to this atom

Params:

NameTypeAttributeDescription
type boolean

The type of the IO (input or output)

name string

The name of the new attachment point

target object

The atom to attach the new attachment point to. Should we force this to always be this one?

valueType string

Describes the type of value the input is expecting options are number, geometry, array

defaultValue object

The default value to be used when the value is not yet set

public basicThreadValueProcessing(toAsk: *) source

Calls a worker thread to compute the atom's value.

Params:

NameTypeAttributeDescription
toAsk *

public beginPropagation() source

Starts propagation placeholder. Most atom types do not begin propagation.

public census(): number[] source

Returns an array of length two indicating that this is one atom and if it is waiting to be computed

Return:

number[]

public clearAlert() source

Clears the alert message attached to this atom.

public clickDown(x: number, y: number, clickProcessed: boolean): * source

Set the atom's response to a mouse click. This usually means selecting the atom and displaying it's contents in 3D

Params:

NameTypeAttributeDescription
x number

The X coordinate of the click

y number

The Y coordinate of the click

clickProcessed boolean

A flag to indicate if the click has already been processed

Return:

*

public clickMove(x: number, y: number) source

Set the atom's response to a mouse click and drag. Moves the atom around the screen.

Params:

NameTypeAttributeDescription
x number

The X cordinate of the click

y number

The Y cordinate of the click

public clickUp(x: number, y: number) source

Set the atom's response to a mouse click up. If the atom is moving this makes it stop moving.

Params:

NameTypeAttributeDescription
x number

The X cordinate of the click

y number

The Y cordinate of the click

public createButton(list: object, parent: object, buttonText: string, functionToCall: object) source

Creates button. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

parent object

The parent which has the function to call on the change...this should really be done with a callback function.

buttonText string

The text on the button.

functionToCall object

The function to call when the button is pressed.

public createCheckbox(list: object, buttonText: string, -: boolean, functionToCall: object) source

Creates button. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

buttonText string

The text on the button.

- boolean

Flag to see if checkbox is checked

functionToCall object

The function to call when the button is pressed.

public createDropDown(list: object, parent: object, options: array, selectedOption: number, description: string, Callback: object) source

Creates dropdown with multiple options to select. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

parent object

The parent which has the function to call on the change...this should really be done with a callback function.

options array

A list of options to display in the drop down.

selectedOption number

The zero referenced index of the selected option.

description string

A description of what the dropdown does.

Callback object

function

public createEditableValueListItem(list: object, object: object, key: string, label: string, resultShouldBeNumber: boolean, callBack: object) source

Creates an editable HTML item to set the value of an object element. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

object object

The object with the element we are editing.

key string

The key of the element to edit.

label string

The label to display next to the editable value.

resultShouldBeNumber boolean

A flag to indicate if the input should be converted to a number.

callBack object

Optional. A function to call with the new value when the value changes.

public createFileUpload(list: object, parent: object, buttonText: string, functionToCall: object) source

Creates file upload button. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

parent object

The parent which has the function to call on the change...this should really be done with a callback function.

buttonText string

The text on the button.

functionToCall object

The function to call when the button is pressed.

public createMarkdownListItem(list: object, texxt: string) source

Creates a html representation of the passed text. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

texxt string

The text used to generate the markdown html.

public createNonEditableValueListItem(list: object, object: object, key: string, label: string) source

Creates an non-editable HTML item to set the value of an object element. Used in the sidebar.

Params:

NameTypeAttributeDescription
list object

The HTML object to attach the new item to.

object object

The object with the element we are displaying.

key string

The key of the element to display.

label string

The label to display next to the displayed value.

public decreaseToProcessCountByOne() source

Set's the output value and shows the atom output on the 3D view.

public deleteNode(backgroundClickAfter: boolean, deletePath: boolean, silent: boolean) source

Delete this atom. Silent prevents it from telling its neighbors

Params:

NameTypeAttributeDescription
backgroundClickAfter boolean
  • optional
  • default: true
deletePath boolean
  • optional
  • default: true
silent boolean
  • optional
  • default: false

public displayAndPropagate() source

Displays the atom in 3D and sets the output.

public doubleClick(x: number, y: number): * source

Set the atom's response to a mouse double click. By default this isn't to do anything other than mark the double click as handled.

Params:

NameTypeAttributeDescription
x number

The X cordinate of the click

y number

The Y cordinate of the click

Return:

*

public draw(drawType: *) source

Draws the atom on the screen

Params:

NameTypeAttributeDescription
drawType *

public findIOValue(ioName: string): * source

Find the value of an input for with a given name.

Params:

NameTypeAttributeDescription
ioName string

The name of the target attachment point.

Return:

*

public generatePath() source

Generates the path for this atom from it's location in the graph

public initializeSideBar(): * source

Initialized the sidebar with a title and create the HTML object.

Return:

*

public keyPress(key: string) source

Set the atom's response to a key press. Is used to delete the atom if it is selected.

Params:

NameTypeAttributeDescription
key string

The key which has been pressed.

public loadTree(): * source

Sets all the input and output values to match their associated atoms.

Return:

*

public removeIO(type: boolean, name: string, target: object, silent: object) source

Removes an attachment point from an atom.

Params:

NameTypeAttributeDescription
type boolean

The type of the IO (input or output).

name string

The name of the new attachment point.

target object

The attom which the attachment point is attached to. Should

silent object

Should any connected atoms be informed of the change

public requestReadme(): *[] source

Return any contribution from this atom to the README file

Return:

*[]

public selectBox(x: *, y: *, xEnd: *, yEnd: *) source

Delineates bounds for selection box.

Params:

NameTypeAttributeDescription
x *
y *
xEnd *
yEnd *

public sendToRender() source

Send the value of this atom to the 3D display.

public serialize(offset: {"x": number, "y": number}): * source

Create an object containing the information about this atom that we want to save.

Params:

NameTypeAttributeDescription
offset {"x": number, "y": number}
  • optional
  • default: {"x":0,"y":0}

Return:

*

public setAlert(message: string) source

Set an alert to display next to the atom.

Params:

NameTypeAttributeDescription
message string

The message to display.

public setValues(values: object) source

Applies each of the passed values to this as this.x

Params:

NameTypeAttributeDescription
values object

A list of values to set

public update() source

Runs with each frame to draw the atom.

public updateSidebar(): * source

Updates the side bar to display information about the atom. By default this is just add a title and to let you edit any unconnected inputs.

Return:

*

public updateValue() source

Token update value function to give each atom one by default

public waitOnComingInformation() source

Sets the atom to wait on coming information. Basically a pass through, but used for molecules

public walkBackForConstants(callback: *) source

Used to walk back out the tree generating a list of constants...used for evolve

Params:

NameTypeAttributeDescription
callback *