Package chemaxon.struc.graphics
Class MEFlow
java.lang.Object
chemaxon.struc.MObject
chemaxon.struc.graphics.MPolyline
chemaxon.struc.graphics.MEFlow
- All Implemented Interfaces:
Serializable
,Cloneable
Electron flow arrow.
Representing the movement of one or two electrons in a reaction as a curved arrow.
Electron flow can start from any atom or bond, but not from any atom pairs that has no connection bond.
The logic of the electron flows:
Representing the movement of one or two electrons in a reaction as a curved arrow.
Electron flow can start from any atom or bond, but not from any atom pairs that has no connection bond.
The logic of the electron flows:
- If the source is an Atom, the sink can be:
- any Atom
- Bond connected to this Atom
- an atom pair from this atom and any other atom (incipient bond)
- If the source is a Bond, the sink can be:
- one of the Atoms on the end of this Bond
- a Bond connected to this Bond (has common ending Atom)
- an atom pair from one of the Atoms on the end of this Bond and any other atom (incipient bond)
- If only the sink/source is in an sgroup, the sink/source must be the attachment point.
- Since:
- Marvin 3.5, 07/14/2004
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Electron sink.static final int
Electron source.static final String
static final String
Fields inherited from class chemaxon.struc.graphics.MPolyline
ARROW_BACK_FLAG, ARROW_CROSSED_FLAG, ARROW_CURVED_FLAG, ARROW_DASHED_FLAG, ARROW_EQUILIBRIUM_FLAG, ARROW_GROUP1_MASK, ARROW_GROUP2_MASK, ARROW_HALF_LEFT, ARROW_HALF_MASK, ARROW_HALF_RIGHT, ARROW_RETROSYNTHETIC_FLAG, arrowFlags, CLOSED_FLAG, DEFAULT_ARROW_HEAD_LENGTH, DEFAULT_ARROW_HEAD_WIDTH, DEFAULT_EQUILIBRIUM_HEAD_WIDTH, DEFAULT_MAX_CROSS_SIZE, DEFAULT_RETROSYNTHETIC_HEAD_WIDTH, DEFAULT_THICKNESS, HEAD, points, TAIL, THICKNESS_SET_FLAG
Fields inherited from class chemaxon.struc.MObject
TRANSFORM_DISTORT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the attribute names to the specified vector.clone()
Creates a clone.void
Copies line properties to another line object.double
distanceFrom
(double x, double y, CTransform3D t) Gets the 2D distance from the specified point.static MolAtom
Gets the atom at the terminus of an arrow.static MolAtom[]
Gets the atom or atoms at the terminus of an arrow.Gets the value of an attribute.int
int
static MolBond
Gets the bond at the terminus of an arrow.getEFlowsFromAtom
(MolAtom atom) Returns all the EFlow from this atom.getEFlowsOfAtom
(MolAtom atom) Returns all the EFlows that are started from this atom or pointing to this atom.getEFlowsToAtom
(MolAtom atom) Returns all the EFlows to this atom.getMolObject
(int i) Gets the electron source or sink.int
Gets the number of electrons the arrow represents.getPoint
(int i) Gets a point of the line.int
Gets the number of point references.getSink()
Gets the destination of the electron-flow arrow (MolAtom, MolBond, or MolAtom[2] for incipient bond).Gets the atom at the sink of this arrow.MolAtom[]
Gets the atom or atoms at the arrow sink.Gets the bond at the sink of this arrow.Gets the origin of the electron-flow arrow (MolAtom or MolBond).Gets the atom at the source of this arrow.MolAtom[]
Gets the atom or atoms at the arrow source.Gets the bond at the source of this arrow.static MolAtom[][]
getValidSinkAtomPairsForMolecule
(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.static MolAtom[][]
getValidSinkAtomPairsForMolecule
(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolBond)
.static MolAtom[]
getValidSinkAtomsForMolecule
(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolAtom)
.static MolAtom[]
getValidSinkAtomsForMolecule
(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolBond)
.static MolBond[]
getValidSinkBondsForMolecule
(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolAtom)
.static MolBond[]
getValidSinkBondsForMolecule
(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolBond)
.static MolAtom[][]
Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtomPairs(Molecule)
.static MolAtom[]
Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtoms(Molecule)
.static MolBond[]
Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceBonds(Molecule)
.static boolean
Gets whether the arrow's terminus is at an atom.static boolean
Gets whether the arrow's terminus is at a bond.static boolean
isIncipBond
(Object sink) Gets whether the arrow's sink is at an incipient bond.static boolean
isValidSourceAndSinkForMolecule
(Object source, Object sink, Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidFlow(MolAtom, MolAtom, Molecule)
or one of the other implementations instead.static boolean
isValidSourceForMolecule
(Object source, Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidSource(MolAtom, Molecule)
orEFlowPlacementValidators.isValidSource(MolAtom[], Molecule)
orEFlowPlacementValidators.isValidSource(MolBond, Molecule)
.void
void
removeAtom
(MolAtom atom) Removes the atom from the corresponding molecule object.void
removeNotify
(MDocument doc) Called when the object is removed from a document.void
resetBaseElectronContainer
(MolAtom atom, MDocument doc) void
setAttribute
(String s, String v) Sets the value of an attribute.void
setBaseElectronContainer
(MolAtom atom, MDocument doc) void
setBaseElectronContainerIndex
(int idx) void
setBaseElectronIndexInContainer
(int idx) void
boolean
Gets whether this arrow's sink is an atom.boolean
Gets whether this arrow's sink is a bond.boolean
Gets whether this arrow's sink is an incipient bond.boolean
Gets whether this arrow's source is an atom.boolean
Gets whether this arrow's source is a bond.Methods inherited from class chemaxon.struc.graphics.MPolyline
calcCenter, checkValidity, containsAtom, finishCloning, fixClonedPoints, fixMidPointClones, getArcAngle, getArcCenter, getArcRadius, getArcRadius, getArrowFlags, getArrowLength, getArrowWidth, getFlags, getLineMiddlePoint, getMidPointLocation, getMirroredArrowFlags, getPointCount, getPointRef, getPoints, getSkip, getThickness, hasBackground, hasColor, hasFace, hasLineColor, hasOutline, isArrow, isEmpty, isThicknessSet, removeChild, replaceAtom, reverse, rotate, setArcAngle, setArrow, setArrowFlags, setArrowLength, setArrowWidth, setFlags, setPoints, setSkip, setThickness, transform, unselectContents, updateBoundingRect
Methods inherited from class chemaxon.struc.MObject
addCdataAttributeKeys, addNotify, connectToSgroupOfAtom, containsPoint, distanceFrom, getBackground, getColor, getContainerMObject, getLineColor, isChildOf, isInternalSelectable, isReactionArrow, isSelectableNow, isSelected, isTransformable, makeColor, setBackground, setColor, setLineColor, setSelected, toString, updateBoundingRect
-
Field Details
-
lonePairState
- See Also:
-
radicalState
- See Also:
-
E_SOURCE
public static final int E_SOURCEElectron source.- See Also:
-
E_SINK
public static final int E_SINKElectron sink.- See Also:
-
-
Constructor Details
-
MEFlow
public MEFlow()Contructs an empty 2 electron flow arrow. -
MEFlow
public MEFlow(int ne) Contructs an empty electron flow arrow.- Parameters:
ne
- one-electron (1) or two-electron (2) transfer
-
MEFlow
Contructs an electron flow arrow with the specified endpoints.- Parameters:
p1
- the starting pointp2
- the endpointne
- one-electron (1) or two-electron (2) transfer- See Also:
-
MEFlow
Copy constructor.- Parameters:
l
- the original arrow
-
-
Method Details
-
getNumElectrons
public int getNumElectrons()Gets the number of electrons the arrow represents.- Returns:
- 1 or 2
-
getPoint
Gets a point of the line. -
clone
Description copied from class:MObject
Creates a clone. -
getMolObject
Gets the electron source or sink. -
getPointRefCount
public int getPointRefCount()Gets the number of point references.- Overrides:
getPointRefCount
in classMPolyline
- Returns:
- 2 because middle point is not needed
-
getSource
Gets the origin of the electron-flow arrow (MolAtom or MolBond).- Returns:
- origin of the electron-flow arrow
-
getSink
Gets the destination of the electron-flow arrow (MolAtom, MolBond, or MolAtom[2] for incipient bond).- Returns:
- destination of the electron-flow arrow
-
sourceIsAtom
public boolean sourceIsAtom()Gets whether this arrow's source is an atom.- Returns:
- whether this arrow's source is an atom
-
sinkIsAtom
public boolean sinkIsAtom()Gets whether this arrow's sink is an atom.- Returns:
- whether this arrow's sink is an atom
-
isAtom
Gets whether the arrow's terminus is at an atom.- Parameters:
terminus
- the arrow terminus- Returns:
- whether the arrow's terminus is at an atom
-
sourceIsBond
public boolean sourceIsBond()Gets whether this arrow's source is a bond.- Returns:
- whether this arrow's source is a bond
-
sinkIsBond
public boolean sinkIsBond()Gets whether this arrow's sink is a bond.- Returns:
- whether this arrow's sink is a bond
-
isBond
Gets whether the arrow's terminus is at a bond.- Parameters:
terminus
- the arrow terminus- Returns:
- whether the arrow's terminus is at a bond
-
sinkIsIncipBond
public boolean sinkIsIncipBond()Gets whether this arrow's sink is an incipient bond.- Returns:
- whether this arrow's sink is an incipient bond
-
isIncipBond
Gets whether the arrow's sink is at an incipient bond.- Parameters:
sink
- the arrow sink- Returns:
- whether the arrow's sink is at an incipient bond
-
getSourceAtom
Gets the atom at the source of this arrow. Use only after sourceIsAtom().- Returns:
- the atom at the source of this arrow
-
getSinkAtom
Gets the atom at the sink of this arrow. Use only after sinkIsAtom().- Returns:
- the atom at the sink of this arrow
-
getAtom
Gets the atom at the terminus of an arrow.- Parameters:
terminus
- the arrow terminus- Returns:
- the atom at the terminus of an arrow or null if it is not a MolAtom.
-
getBond
Gets the bond at the terminus of an arrow.- Parameters:
terminus
- the arrow terminus- Returns:
- the bond at the terminus of an arrow or null if the terminus is not a MolBond.
-
getSourceBond
Gets the bond at the source of this arrow. Use only after sourceIsBond().- Returns:
- the bond at the source of this arrow
-
getSinkBond
Gets the bond at the sink of this arrow. Use only after sinkIsBond().- Returns:
- the bond at the sink of this arrow
-
getSourceAtoms
Gets the atom or atoms at the arrow source.- Returns:
- the atom or atoms at the arrow source
-
getSinkAtoms
Gets the atom or atoms at the arrow sink.- Returns:
- the atom or atoms at the arrow sink
-
getAtoms
Gets the atom or atoms at the terminus of an arrow.- Parameters:
terminus
- the arrow terminus- Returns:
- the atom or atoms at the terminus of an arrow
-
getEFlowsOfAtom
Returns all the EFlows that are started from this atom or pointing to this atom.- Parameters:
atom
- the sink or source atom- Returns:
List
of EFlows, empty if no EFlow starts from this atom and no EFlow ends to this atom.
-
getEFlowsFromAtom
Returns all the EFlow from this atom. SeegetEFlowsOfAtom(MolAtom)
.- Returns:
List
of MEFlows, empty if no electron flow arrow is connected to the atom.
-
getEFlowsToAtom
Returns all the EFlows to this atom. SeegetEFlowsOfAtom(MolAtom)
.- Returns:
List
of MEFlows, empty if no electron flow arrow is connected to the atom.
-
setSkipsToEndPoints
public void setSkipsToEndPoints() -
setBaseElectronContainer
-
resetBaseElectronContainer
-
getBaseElectronContainerIndex
public int getBaseElectronContainerIndex() -
setBaseElectronContainerIndex
public void setBaseElectronContainerIndex(int idx) -
getBaseElectronIndexInContainer
public int getBaseElectronIndexInContainer() -
setBaseElectronIndexInContainer
public void setBaseElectronIndexInContainer(int idx) -
getValidSourceAtomsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[] getValidSourceAtomsForMolecule(Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtoms(Molecule)
. -
getValidSourceBondsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolBond[] getValidSourceBondsForMolecule(Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceBonds(Molecule)
. -
getValidSourceAtomPairsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[][] getValidSourceAtomPairsForMolecule(Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtomPairs(Molecule)
. -
getValidSinkAtomsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[] getValidSinkAtomsForMolecule(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolAtom)
. -
getValidSinkAtomsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[] getValidSinkAtomsForMolecule(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolBond)
. -
getValidSinkBondsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolBond[] getValidSinkBondsForMolecule(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolAtom)
. -
getValidSinkBondsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolBond[] getValidSinkBondsForMolecule(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolBond)
. -
getValidSinkAtomPairsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[][] getValidSinkAtomPairsForMolecule(Molecule m, MolAtom source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolAtom)
. -
getValidSinkAtomPairsForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static MolAtom[][] getValidSinkAtomPairsForMolecule(Molecule m, MolBond source) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolBond)
. -
isValidSourceForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static boolean isValidSourceForMolecule(Object source, Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidSource(MolAtom, Molecule)
orEFlowPlacementValidators.isValidSource(MolAtom[], Molecule)
orEFlowPlacementValidators.isValidSource(MolBond, Molecule)
. -
isValidSourceAndSinkForMolecule
@Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static boolean isValidSourceAndSinkForMolecule(Object source, Object sink, Molecule m) Deprecated, for removal: This API element is subject to removal in a future version.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidFlow(MolAtom, MolAtom, Molecule)
or one of the other implementations instead. -
distanceFrom
Description copied from class:MPolyline
Gets the 2D distance from the specified point.- Overrides:
distanceFrom
in classMPolyline
- Parameters:
x
- the x coordinatey
- the y coordinatet
- transformation or null
-
copyProperties
Description copied from class:MPolyline
Copies line properties to another line object.- Overrides:
copyProperties
in classMPolyline
- Parameters:
l
- the other line
-
getAttribute
Description copied from class:MPolyline
Gets the value of an attribute.- Overrides:
getAttribute
in classMPolyline
- Parameters:
s
- the attribute name- Returns:
- the value or null
-
addAttributeKeys
Description copied from class:MPolyline
Adds the attribute names to the specified vector.- Overrides:
addAttributeKeys
in classMPolyline
- Parameters:
v
- the vector
-
setAttribute
Description copied from class:MPolyline
Sets the value of an attribute.- Overrides:
setAttribute
in classMPolyline
- Parameters:
s
- the attribute namev
- the attribute value
-
getMElectron
-
getMElectronRef
-
getMElectronContainer
-
releaseBaseMElectrons
public void releaseBaseMElectrons() -
removeAtom
Description copied from class:MObject
Removes the atom from the corresponding molecule object.- Overrides:
removeAtom
in classMObject
- Parameters:
atom
- the atom to remove
-
removeNotify
Description copied from class:MObject
Called when the object is removed from a document.- Overrides:
removeNotify
in classMPolyline
- Parameters:
doc
- The document from which the object is removed.
-
EFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolAtom)
.