Class: BaseStructureConnector

Kekule. BaseStructureConnector

new BaseStructureConnector(id, connectedObjs)

Implements the concept of a connections between two or more structure nodes.
Parameters:
Name Type Description
id String Id of this connector.
connectedObjs Array Objects (Kekule.ChemStructureObject) connected by connected, usually a connector connects two nodes.
Properties:
Name Type Description
connectedObjs Array Structure objects (Kekule.ChemStructureObject) connected by connector. Usually a connector connects two nodes. However, there are some compounds that has bond-atom bond (such as Zeise's salt: [Cl3Pt(CH2=CH2)]), so here array of Kekule.ChemStructureObject rather than array of Kekule.ChemStructureNode is used.
Source:

Extends

Methods

appendConnectedObj(obj)

Add a object to connectedObjs array. If obj already in connectedObjs, nothing will be done.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

appendLinkedConnector(connector)

Link a connector to this node.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:

assertConnectedObjLegal(obj) → {Bool}

Check if an obj can be added to connectedObjs array. Generally, an object with same owner of current connector can be added. If not so, a exception will be raised.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:
Returns:
Type
Bool

clearConnectedObjs()

Clear all connected objects.
Source:

clearStructureFlags()

Clear all flags of structure object that should be changed when structure is changed. Descendants may override this method.
Inherited From:
Source:

compareStructure(targetObj, options) → {Int}

Explicit set compare method to chem structure and compare to targetObj.
Parameters:
Name Type Description
targetObj Kekule.ChemObject
options Hash
Inherited From:
Source:
Returns:
Type
Int

equalStructure(targetObj, options) → {Bool}

Check if this object and targetObj has equivalent chem structure.
Parameters:
Name Type Description
targetObj Kekule.ChemObject
options Hash
Inherited From:
Source:
Returns:
Type
Bool

getAbsBaseCoord(coordMode) → {Hash}

Get center absolute coord of object.
Parameters:
Name Type Description
coordMode Int
Bool
Source:
Returns:
Type
Hash

getBaseCoord(coordMode, allowCoordBorrow) → {Hash}

Get center coord of object. Param coordMode determinate which coord (2D or 3D) will be returned.
Parameters:
Name Type Description
coordMode Int
allowCoordBorrow Bool
Source:
Returns:
Type
Hash

getBelongedRingMinSize() → {Int}

Returns the min size of all belonged rings.
Inherited From:
Source:
Returns:
Min ring node count. If the object is not belonged to any ring, null will be returned.
Type
Int

getBelongedSssrRings() → {Array}

Returns SSSR ring that this object belonged.
Inherited From:
Source:
Returns:
Type
Array

getConnectedExposedObjs() → {Array}

Returns only connected objects exposed to renderer.
Source:
Returns:
Type
Array

getConnectedObjAt(index) → {Kekule.ChemStructureObject}

Get connectedObj at index.
Parameters:
Name Type Description
index Int
Source:
Returns:
Type
Kekule.ChemStructureObject

getConnectedObjCount() → {Int}

Get count of connected objects.
Source:
Returns:
Type
Int

getConnectedSiblings() → {Array}

Returns connected objects with the same parent of this connector. For example, connector connected to a child node in subgroup, then the subgroup rather than the child node will be returned.
Source:
Returns:
Type
Array

getConnectorTo(obj) → {Kekule.ChemStructureConnector}

Get connector between this object and another object.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureConnector

getCoordDependentObjects() → {Array}

If coord is calculated from other objects, this function will return them.
Source:
Returns:
Type
Array

getCoordDeterminateObjects() → {Array}

If this object determinate other object's coord, this method should returns them.
Inherited From:
Source:
Returns:
Type
Array

getCurrConnectableObj() → {Kekule.ChemStructureObject}

Returns self or child object that can directly linked to a connector. For atom or other simple chem objetc, this function should just returns self, for structure fragment, this function need to returns an anchor node.
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureObject

getLength(coordMode, allowCoordBorrow) → {Float}

Return distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
coordMode Int
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLength2D(allowCoordBorrow) → {Float}

Return 2D distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLength3D(allowCoordBorrow) → {Float}

Return 3D distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLinkedConnectorAt(index) → {Kekule.ChemStructureConnector}

Get linked connector object at index.
Parameters:
Name Type Description
index Int
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureConnector

getLinkedConnectorCount() → {Int}

Return count of linkedConnectors.
Inherited From:
Source:
Returns:
Type
Int

getLinkedHydrogenAtoms() → {Array}

Returns linked hydrogen atoms.
Inherited From:
Source:
Returns:
Type
Array

getLinkedNonHydrogenConnectors() → {Array}

Returns connectors that connected to a non hydrogen node.
Inherited From:
Source:
Returns:
Type
Array

getLinkedNonHydrogenObjs() → {Array}

Returns linked objects except hydrogen atoms.
Inherited From:
Source:
Returns:
Type
Array

getLinkedObjsOnConnector() → {Array}

Returns other objects connected to this one through connector.
Inherited From:
Source:
Returns:
Type
Array

getParentFragment() → {Kekule.StructureFragment}

If Kekule.ChemStructureObject#parent is a Kekule.StructureFragment, returns this fragment.
Inherited From:
Source:
Returns:
Type
Kekule.StructureFragment

getRootFragment() → {Kekule.StructureFragment}

Returns the root parent of Kekule.StructureFragment, rather than subgroups.
Inherited From:
Source:
Returns:
Type
Kekule.StructureFragment

hasConnectedObj(obj)

Check if a object is connected with this connector.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

indexOfConnectedObj(obj) → {Int}

Get index of obj in connectedObjs array.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:
Returns:
Type
Int

indexOfLinkedConnector(connector) → {Int}

Returns index of connector connected to node.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:
Returns:
Type
Int

insertConnectedObjAt(obj, index)

Insert obj at index of connectedObjs array. If index is not set, obj will be put as the first obj.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
index Int
Source:

isConnectingConnector()

Check if this connector connected to another connector (e.g, bond ends with another bond).
Source:

isConnectingWithObj(obj)

Check if a object is connected with this connector. Same as Kekule.ChemStructureConnector#hasConnectedObj
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

isCoordDependent() → {Bool}

Whether the coord of chem object is not calculated from other object (like connector).
Source:
Returns:
Type
Bool

move(delta, coordMode)

Move connector by delta. Actually this action will move all nodes connected with this connector.
Parameters:
Name Type Description
delta Hash
coordMode Int
Source:

move2D(delta) → {Hash}

Move connector 2D coord by delta.
Parameters:
Name Type Description
delta Hash
Source:
Returns:
New coord after moving.
Type
Hash

move3D(delta) → {Hash}

Move connector 3D coord by delta.
Parameters:
Name Type Description
delta Hash
Source:
Returns:
New coord after moving.
Type
Hash

removeConnectedObj(obj)

Remove a object in connectedObjs property.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

removeConnectedObjAt(index)

Remove object at index in connectedObjs property.
Parameters:
Name Type Description
index Int
Source:

removeLinkedConnector(connector)

Remove a connector in linkedContainer.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:

removeLinkedConnectorAt(index)

Remove connector at index of linkedConnectors.
Parameters:
Name Type Description
index Int
Inherited From:
Source:

removeThisFromConnectedObjs()

Remove this connector from all linked objects. Ths method should be called before a connector is removed from a structure.
Source:

removeThisFromLinkedConnector()

Remove this node from all linked connectors. Ths method should be called before a object is removed from a structure.
Inherited From:
Source:

replaceConnectedObj(oldObj, newObj)

Replace old connected object with new one and remove connection to old object.
Parameters:
Name Type Description
oldObj Kekule.ChemStructureObject
newObj Kekule.ChemStructureObject
Source:

reverseConnectedObjOrder()

Reverse the order of connected object.
Source:

setAbsBaseCoord(value, coordMode)

Set absolute center coord of connector. Actually mode all conntected nodes.
Parameters:
Name Type Description
value Hash
coordMode Int
Source:

setConnectedObjAt(index, value)

Set connectedObj at index.
Parameters:
Name Type Description
index Int
value Kekule.ChemStructureObject
Source:

sortConnectedObjs(compareFunc)

Sort the array of connected objs.
Parameters:
Name Type Description
compareFunc function
Source:

Events

structureChange

Invoked when object is changed and the change is related with structure (e.g. modify a bond, change a atomic number...). Event has field: {origin: the change source object (may be a child of event.target}.
Inherited From:
Source:

Kekule. BaseStructureConnector

new BaseStructureConnector()

Source:

Methods

appendConnectedObj(obj)

Add a object to connectedObjs array. If obj already in connectedObjs, nothing will be done.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

appendLinkedConnector(connector)

Link a connector to this node.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:

assertConnectedObjLegal(obj) → {Bool}

Check if an obj can be added to connectedObjs array. Generally, an object with same owner of current connector can be added. If not so, a exception will be raised.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:
Returns:
Type
Bool

clearConnectedObjs()

Clear all connected objects.
Source:

clearStructureFlags()

Clear all flags of structure object that should be changed when structure is changed. Descendants may override this method.
Inherited From:
Source:

compareStructure(targetObj, options) → {Int}

Explicit set compare method to chem structure and compare to targetObj.
Parameters:
Name Type Description
targetObj Kekule.ChemObject
options Hash
Inherited From:
Source:
Returns:
Type
Int

equalStructure(targetObj, options) → {Bool}

Check if this object and targetObj has equivalent chem structure.
Parameters:
Name Type Description
targetObj Kekule.ChemObject
options Hash
Inherited From:
Source:
Returns:
Type
Bool

getAbsBaseCoord(coordMode) → {Hash}

Get center absolute coord of object.
Parameters:
Name Type Description
coordMode Int
Bool
Source:
Returns:
Type
Hash

getBaseCoord(coordMode, allowCoordBorrow) → {Hash}

Get center coord of object. Param coordMode determinate which coord (2D or 3D) will be returned.
Parameters:
Name Type Description
coordMode Int
allowCoordBorrow Bool
Source:
Returns:
Type
Hash

getBelongedRingMinSize() → {Int}

Returns the min size of all belonged rings.
Inherited From:
Source:
Returns:
Min ring node count. If the object is not belonged to any ring, null will be returned.
Type
Int

getBelongedSssrRings() → {Array}

Returns SSSR ring that this object belonged.
Inherited From:
Source:
Returns:
Type
Array

getConnectedExposedObjs() → {Array}

Returns only connected objects exposed to renderer.
Source:
Returns:
Type
Array

getConnectedObjAt(index) → {Kekule.ChemStructureObject}

Get connectedObj at index.
Parameters:
Name Type Description
index Int
Source:
Returns:
Type
Kekule.ChemStructureObject

getConnectedObjCount() → {Int}

Get count of connected objects.
Source:
Returns:
Type
Int

getConnectedSiblings() → {Array}

Returns connected objects with the same parent of this connector. For example, connector connected to a child node in subgroup, then the subgroup rather than the child node will be returned.
Source:
Returns:
Type
Array

getConnectorTo(obj) → {Kekule.ChemStructureConnector}

Get connector between this object and another object.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureConnector

getCoordDependentObjects() → {Array}

If coord is calculated from other objects, this function will return them.
Source:
Returns:
Type
Array

getCoordDeterminateObjects() → {Array}

If this object determinate other object's coord, this method should returns them.
Inherited From:
Source:
Returns:
Type
Array

getCurrConnectableObj() → {Kekule.ChemStructureObject}

Returns self or child object that can directly linked to a connector. For atom or other simple chem objetc, this function should just returns self, for structure fragment, this function need to returns an anchor node.
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureObject

getLength(coordMode, allowCoordBorrow) → {Float}

Return distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
coordMode Int
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLength2D(allowCoordBorrow) → {Float}

Return 2D distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLength3D(allowCoordBorrow) → {Float}

Return 3D distance between two connected object. If more than two objects are connected, this function will return null.
Parameters:
Name Type Description
allowCoordBorrow Bool
Source:
Returns:
Type
Float

getLinkedConnectorAt(index) → {Kekule.ChemStructureConnector}

Get linked connector object at index.
Parameters:
Name Type Description
index Int
Inherited From:
Source:
Returns:
Type
Kekule.ChemStructureConnector

getLinkedConnectorCount() → {Int}

Return count of linkedConnectors.
Inherited From:
Source:
Returns:
Type
Int

getLinkedHydrogenAtoms() → {Array}

Returns linked hydrogen atoms.
Inherited From:
Source:
Returns:
Type
Array

getLinkedNonHydrogenConnectors() → {Array}

Returns connectors that connected to a non hydrogen node.
Inherited From:
Source:
Returns:
Type
Array

getLinkedNonHydrogenObjs() → {Array}

Returns linked objects except hydrogen atoms.
Inherited From:
Source:
Returns:
Type
Array

getLinkedObjsOnConnector() → {Array}

Returns other objects connected to this one through connector.
Inherited From:
Source:
Returns:
Type
Array

getParentFragment() → {Kekule.StructureFragment}

If Kekule.ChemStructureObject#parent is a Kekule.StructureFragment, returns this fragment.
Inherited From:
Source:
Returns:
Type
Kekule.StructureFragment

getRootFragment() → {Kekule.StructureFragment}

Returns the root parent of Kekule.StructureFragment, rather than subgroups.
Inherited From:
Source:
Returns:
Type
Kekule.StructureFragment

hasConnectedObj(obj)

Check if a object is connected with this connector.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

indexOfConnectedObj(obj) → {Int}

Get index of obj in connectedObjs array.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:
Returns:
Type
Int

indexOfLinkedConnector(connector) → {Int}

Returns index of connector connected to node.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:
Returns:
Type
Int

insertConnectedObjAt(obj, index)

Insert obj at index of connectedObjs array. If index is not set, obj will be put as the first obj.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
index Int
Source:

isConnectingConnector()

Check if this connector connected to another connector (e.g, bond ends with another bond).
Source:

isConnectingWithObj(obj)

Check if a object is connected with this connector. Same as Kekule.ChemStructureConnector#hasConnectedObj
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

isCoordDependent() → {Bool}

Whether the coord of chem object is not calculated from other object (like connector).
Source:
Returns:
Type
Bool

move(delta, coordMode)

Move connector by delta. Actually this action will move all nodes connected with this connector.
Parameters:
Name Type Description
delta Hash
coordMode Int
Source:

move2D(delta) → {Hash}

Move connector 2D coord by delta.
Parameters:
Name Type Description
delta Hash
Source:
Returns:
New coord after moving.
Type
Hash

move3D(delta) → {Hash}

Move connector 3D coord by delta.
Parameters:
Name Type Description
delta Hash
Source:
Returns:
New coord after moving.
Type
Hash

removeConnectedObj(obj)

Remove a object in connectedObjs property.
Parameters:
Name Type Description
obj Kekule.ChemStructureObject
Source:

removeConnectedObjAt(index)

Remove object at index in connectedObjs property.
Parameters:
Name Type Description
index Int
Source:

removeLinkedConnector(connector)

Remove a connector in linkedContainer.
Parameters:
Name Type Description
connector Kekule.ChemStructureConnector
Inherited From:
Source:

removeLinkedConnectorAt(index)

Remove connector at index of linkedConnectors.
Parameters:
Name Type Description
index Int
Inherited From:
Source:

removeThisFromConnectedObjs()

Remove this connector from all linked objects. Ths method should be called before a connector is removed from a structure.
Source:

removeThisFromLinkedConnector()

Remove this node from all linked connectors. Ths method should be called before a object is removed from a structure.
Inherited From:
Source:

replaceConnectedObj(oldObj, newObj)

Replace old connected object with new one and remove connection to old object.
Parameters:
Name Type Description
oldObj Kekule.ChemStructureObject
newObj Kekule.ChemStructureObject
Source:

reverseConnectedObjOrder()

Reverse the order of connected object.
Source:

setAbsBaseCoord(value, coordMode)

Set absolute center coord of connector. Actually mode all conntected nodes.
Parameters:
Name Type Description
value Hash
coordMode Int
Source:

setConnectedObjAt(index, value)

Set connectedObj at index.
Parameters:
Name Type Description
index Int
value Kekule.ChemStructureObject
Source:

sortConnectedObjs(compareFunc)

Sort the array of connected objs.
Parameters:
Name Type Description
compareFunc function
Source:

Events

structureChange

Invoked when object is changed and the change is related with structure (e.g. modify a bond, change a atomic number...). Event has field: {origin: the change source object (may be a child of event.target}.
Inherited From:
Source: