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
@PublicAPI public class MEFlow extends MPolyline
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:- 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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
E_SINK
Electron sink.static int
E_SOURCE
Electron source.static String
lonePairState
static String
radicalState
-
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
Constructors Modifier Constructor Description MEFlow()
Contructs an empty 2 electron flow arrow.MEFlow(int ne)
Contructs an empty electron flow arrow.protected
MEFlow(MEFlow l)
Copy constructor.MEFlow(MPoint p1, MPoint p2, int ne)
Contructs an electron flow arrow with the specified endpoints.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addAttributeKeys(List<String> v)
Adds the attribute names to the specified vector.MEFlow
clone()
Creates a clone.void
copyProperties(MPolyline l)
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
getAtom(Object terminus)
Gets the atom at the terminus of an arrow.static MolAtom[]
getAtoms(Object terminus)
Gets the atom or atoms at the terminus of an arrow.String
getAttribute(String s)
Gets the value of an attribute.int
getBaseElectronContainerIndex()
int
getBaseElectronIndexInContainer()
static MolBond
getBond(Object terminus)
Gets the bond at the terminus of an arrow.static List<MEFlow>
getEFlowsFromAtom(MolAtom atom)
Returns all the EFlow from this atom.static List<MEFlow>
getEFlowsOfAtom(MolAtom atom)
Returns all the EFlows that are started from this atom or pointing to this atom.static List<MEFlow>
getEFlowsToAtom(MolAtom atom)
Returns all the EFlows to this atom.chemaxon.struc.graphics.MElectron
getMElectron()
chemaxon.struc.graphics.MElectronContainer
getMElectronContainer()
chemaxon.struc.graphics.MElectron
getMElectronRef()
Object
getMolObject(int i)
Gets the electron source or sink.int
getNumElectrons()
Gets the number of electrons the arrow represents.MPoint
getPoint(int i)
Gets a point of the line.int
getPointRefCount()
Gets the number of point references.Object
getSink()
Gets the destination of the electron-flow arrow (MolAtom, MolBond, or MolAtom[2] for incipient bond).MolAtom
getSinkAtom()
Gets the atom at the sink of this arrow.MolAtom[]
getSinkAtoms()
Gets the atom or atoms at the arrow sink.MolBond
getSinkBond()
Gets the bond at the sink of this arrow.Object
getSource()
Gets the origin of the electron-flow arrow (MolAtom or MolBond).MolAtom
getSourceAtom()
Gets the atom at the source of this arrow.MolAtom[]
getSourceAtoms()
Gets the atom or atoms at the arrow source.MolBond
getSourceBond()
Gets the bond at the source of this arrow.static MolAtom[][]
getValidSinkAtomPairsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolAtom)
.static MolAtom[][]
getValidSinkAtomPairsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolBond)
.static MolAtom[]
getValidSinkAtomsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolAtom)
.static MolAtom[]
getValidSinkAtomsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolBond)
.static MolBond[]
getValidSinkBondsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolAtom)
.static MolBond[]
getValidSinkBondsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolBond)
.static MolAtom[][]
getValidSourceAtomPairsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtomPairs(Molecule)
.static MolAtom[]
getValidSourceAtomsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtoms(Molecule)
.static MolBond[]
getValidSourceBondsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceBonds(Molecule)
.static boolean
isAtom(Object terminus)
Gets whether the arrow's terminus is at an atom.static boolean
isBond(Object terminus)
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.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.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidSource(MolAtom, Molecule)
orEFlowPlacementValidators.isValidSource(MolAtom[], Molecule)
orEFlowPlacementValidators.isValidSource(MolBond, Molecule)
.void
releaseBaseMElectrons()
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
setSkipsToEndPoints()
boolean
sinkIsAtom()
Gets whether this arrow's sink is an atom.boolean
sinkIsBond()
Gets whether this arrow's sink is a bond.boolean
sinkIsIncipBond()
Gets whether this arrow's sink is an incipient bond.boolean
sourceIsAtom()
Gets whether this arrow's source is an atom.boolean
sourceIsBond()
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 Detail
-
lonePairState
public static final String lonePairState
- See Also:
- Constant Field Values
-
radicalState
public static final String radicalState
- See Also:
- Constant Field Values
-
E_SOURCE
public static final int E_SOURCE
Electron source.- See Also:
getMolObject(int)
, Constant Field Values
-
E_SINK
public static final int E_SINK
Electron sink.- See Also:
getMolObject(int)
, Constant Field Values
-
-
Constructor Detail
-
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
public MEFlow(MPoint p1, MPoint p2, int ne)
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:
MAtomSetPoint
-
MEFlow
protected MEFlow(MEFlow l)
Copy constructor.- Parameters:
l
- the original arrow
-
-
Method Detail
-
getNumElectrons
public int getNumElectrons()
Gets the number of electrons the arrow represents.- Returns:
- 1 or 2
-
getPoint
public MPoint getPoint(int i)
Gets a point of the line.
-
getMolObject
public Object getMolObject(int i)
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
public Object getSource()
Gets the origin of the electron-flow arrow (MolAtom or MolBond).- Returns:
- origin of the electron-flow arrow
-
getSink
public Object 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
public static boolean isAtom(Object terminus)
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
public static boolean isBond(Object terminus)
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
public static boolean isIncipBond(Object sink)
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
public MolAtom getSourceAtom()
Gets the atom at the source of this arrow. Use only after sourceIsAtom().- Returns:
- the atom at the source of this arrow
-
getSinkAtom
public MolAtom getSinkAtom()
Gets the atom at the sink of this arrow. Use only after sinkIsAtom().- Returns:
- the atom at the sink of this arrow
-
getAtom
public static MolAtom getAtom(Object terminus)
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
public static MolBond getBond(Object terminus)
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
public 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
public MolBond getSinkBond()
Gets the bond at the sink of this arrow. Use only after sinkIsBond().- Returns:
- the bond at the sink of this arrow
-
getSourceAtoms
public MolAtom[] getSourceAtoms()
Gets the atom or atoms at the arrow source.- Returns:
- the atom or atoms at the arrow source
-
getSinkAtoms
public MolAtom[] getSinkAtoms()
Gets the atom or atoms at the arrow sink.- Returns:
- the atom or atoms at the arrow sink
-
getAtoms
public static MolAtom[] getAtoms(Object terminus)
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
public static List<MEFlow> getEFlowsOfAtom(MolAtom atom)
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
public static List<MEFlow> getEFlowsFromAtom(MolAtom atom)
Returns all the EFlow from this atom. SeegetEFlowsOfAtom(MolAtom)
.- Parameters:
atom
-- Returns:
List
of MEFlows, empty if no electron flow arrow is connected to the atom.
-
getEFlowsToAtom
public static List<MEFlow> getEFlowsToAtom(MolAtom atom)
Returns all the EFlows to this atom. SeegetEFlowsOfAtom(MolAtom)
.- Parameters:
atom
-- Returns:
List
of MEFlows, empty if no electron flow arrow is connected to the atom.
-
setSkipsToEndPoints
public void setSkipsToEndPoints()
-
getBaseElectronContainerIndex
public int getBaseElectronContainerIndex()
-
setBaseElectronContainerIndex
public void setBaseElectronContainerIndex(int idx)
-
getBaseElectronIndexInContainer
public int getBaseElectronIndexInContainer()
-
setBaseElectronIndexInContainer
public void setBaseElectronIndexInContainer(int idx)
-
getValidSourceAtomsForMolecule
@Deprecated public static MolAtom[] getValidSourceAtomsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtoms(Molecule)
.
-
getValidSourceBondsForMolecule
@Deprecated public static MolBond[] getValidSourceBondsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceBonds(Molecule)
.
-
getValidSourceAtomPairsForMolecule
@Deprecated public static MolAtom[][] getValidSourceAtomPairsForMolecule(Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSourceAtomPairs(Molecule)
.
-
getValidSinkAtomsForMolecule
@Deprecated public static MolAtom[] getValidSinkAtomsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolAtom)
.
-
getValidSinkAtomsForMolecule
@Deprecated public static MolAtom[] getValidSinkAtomsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtoms(Molecule, MolBond)
.
-
getValidSinkBondsForMolecule
@Deprecated public static MolBond[] getValidSinkBondsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolAtom)
.
-
getValidSinkBondsForMolecule
@Deprecated public static MolBond[] getValidSinkBondsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkBonds(Molecule, MolBond)
.
-
getValidSinkAtomPairsForMolecule
@Deprecated public static MolAtom[][] getValidSinkAtomPairsForMolecule(Molecule m, MolAtom source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolAtom)
.
-
getValidSinkAtomPairsForMolecule
@Deprecated public static MolAtom[][] getValidSinkAtomPairsForMolecule(Molecule m, MolBond source)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.getValidSinkAtomPairs(Molecule, MolBond)
.
-
isValidSourceForMolecule
@Deprecated public static boolean isValidSourceForMolecule(Object source, Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidSource(MolAtom, Molecule)
orEFlowPlacementValidators.isValidSource(MolAtom[], Molecule)
orEFlowPlacementValidators.isValidSource(MolBond, Molecule)
.
-
isValidSourceAndSinkForMolecule
@Deprecated public static boolean isValidSourceAndSinkForMolecule(Object source, Object sink, Molecule m)
Deprecated.As of Marvin 6.1, replaced byEFlowPlacementValidators.isValidFlow(MolAtom, MolAtom, Molecule)
or one of the other implementations instead.
-
distanceFrom
public double distanceFrom(double x, double y, CTransform3D t)
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
public void copyProperties(MPolyline l)
Description copied from class:MPolyline
Copies line properties to another line object.- Overrides:
copyProperties
in classMPolyline
- Parameters:
l
- the other line
-
getAttribute
public String getAttribute(String s)
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
public void addAttributeKeys(List<String> v)
Description copied from class:MPolyline
Adds the attribute names to the specified vector.- Overrides:
addAttributeKeys
in classMPolyline
- Parameters:
v
- the vector
-
setAttribute
public void setAttribute(String s, String v)
Description copied from class:MPolyline
Sets the value of an attribute.- Overrides:
setAttribute
in classMPolyline
- Parameters:
s
- the attribute namev
- the attribute value
-
getMElectron
public chemaxon.struc.graphics.MElectron getMElectron()
-
getMElectronRef
public chemaxon.struc.graphics.MElectron getMElectronRef()
-
getMElectronContainer
public chemaxon.struc.graphics.MElectronContainer getMElectronContainer()
-
releaseBaseMElectrons
public void releaseBaseMElectrons()
-
removeAtom
public void removeAtom(MolAtom atom)
Description copied from class:MObject
Removes the atom from the corresponding molecule object.- Overrides:
removeAtom
in classMObject
- Parameters:
atom
- the atom to remove
-
removeNotify
public void removeNotify(MDocument doc)
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.
-
-