Package chemaxon.struc.graphics
Class MPolyline
- java.lang.Object
-
- chemaxon.struc.MObject
-
- chemaxon.struc.graphics.MPolyline
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
MEFlow
,MRectangle
@PublicAPI public class MPolyline extends MObject
Polyline object.- Since:
- Marvin 3.3, 10/03/2003
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
ARROW_BACK_FLAG
Arrow points back.static int
ARROW_CROSSED_FLAG
Crossed arrow flag.static int
ARROW_CURVED_FLAG
Curved arrow flag.static int
ARROW_DASHED_FLAG
Dashed arrow flag.static int
ARROW_EQUILIBRIUM_FLAG
Equilibrium arrow flag.static int
ARROW_GROUP1_MASK
Mask for the equilibrium and retrosynthetic arrow flags.static int
ARROW_GROUP2_MASK
Mask for the curved, dashed and crosed arrow flags.static int
ARROW_HALF_LEFT
Only the left half of the arrow head is drawn.static int
ARROW_HALF_MASK
Unshifted mask of the half arrow option bits in flags.static int
ARROW_HALF_RIGHT
Only the right half of the arrow head is drawn.static int
ARROW_RETROSYNTHETIC_FLAG
Retrosynthetic arrow flag.protected int[]
arrowFlags
Arrow flags.static int
CLOSED_FLAG
Closed flag.static double
DEFAULT_ARROW_HEAD_LENGTH
Default arrow head length.static double
DEFAULT_ARROW_HEAD_WIDTH
Default arrow head width.static double
DEFAULT_EQUILIBRIUM_HEAD_WIDTH
Default equilibrium head width.static double
DEFAULT_MAX_CROSS_SIZE
Default maximum cross size.static double
DEFAULT_RETROSYNTHETIC_HEAD_WIDTH
Default retrosynthetic head width.static double
DEFAULT_THICKNESS
Default line thickness.static int
HEAD
Arrow head.protected MPoint[]
points
static int
TAIL
Arrow tail (feather).static int
THICKNESS_SET_FLAG
Thickness is set flag.-
Fields inherited from class chemaxon.struc.MObject
TRANSFORM_DISTORT
-
-
Constructor Summary
Constructors Modifier Constructor Description MPolyline()
Contructs an empty line.protected
MPolyline(boolean closed, Color c, Color bg)
Creates a closed polyline.protected
MPolyline(MPolyline l)
Copy constructor.MPolyline(MPolyline l, MPoint p)
Contructs a polyline from the specified starting polyline and endpoint.MPolyline(MPoint p1, MPoint p2)
Contructs a line with the specified endpoints.MPolyline(MPoint p1, MPoint p2, Color c, Color bg)
Contructs a line 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.void
calcCenter(DPoint3 p, CTransform3D trot)
Calculates the geometrical center.boolean
checkValidity(MDocument doc, Collection<MolAtom> invec)
Is it a valid object in the document?MPolyline
clone()
Creates a clone.boolean
containsAtom(MolAtom a)
Checks if the atom set contains the specified atom object.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.void
finishCloning(MDocument olddoc, MDocument newdoc)
Finish cloning a document.void
fixClonedPoints(MObject[] objarr0, MObject[] objarr, int i)
Sets the parent object for this object.static void
fixMidPointClones(MObject[] objarr0, MObject[] objarr)
Fixes the parents of the cloned MMidPoints.double
getArcAngle()
Gets the central angle of the arc.static DPoint3
getArcCenter(DPoint3 p1, DPoint3 p2, double angle)
Returns the arc center.double
getArcRadius(CTransform3D t)
Gets the arc radius.static double
getArcRadius(DPoint3 pointA, DPoint3 pointB, double angle)
int
getArrowFlags(int i)
Gets the arrow flags.double
getArrowLength(int i)
Gets the arrow head length.double
getArrowWidth(int i)
Gets the arrow head width.String
getAttribute(String s)
Gets the value of an attribute.int
getFlags()
Gets the flags.static DPoint3
getLineMiddlePoint(DPoint3 p1, DPoint3 p2)
DPoint3
getMidPointLocation(int i, CTransform3D t)
Gets the middle point of the arc.protected int
getMirroredArrowFlags(int i)
Mirror transformation for arrow heads.MPoint
getPoint(int i)
Gets the clone of a point of the line.int
getPointCount()
Gets the number of points.MPoint
getPointRef(int i, CTransform3D trot)
Gets a reference to a point or midpoint in the polyline.int
getPointRefCount()
Gets the number of point references.MPoint[]
getPoints()
Gets the points.double
getSkip(int i)
Gets the distance of the (visible) head or tail from the corresponding line end point.double
getThickness()
Gets the line thickness.boolean
hasBackground()
A polyline has a background only if it is closed.boolean
hasColor()
A polyline does not have a non-line, non-background color.boolean
hasFace()
Is it 2 dimensional?boolean
hasLineColor()
A polyline have a line color always.boolean
hasOutline()
Does it have an outline?boolean
isArrow()
Checks if it is an arrow.boolean
isEmpty()
A polyline becomes empty if it has less than 2 points.boolean
isThicknessSet()
Checks if the line thickness is set.void
removeChild(MObject o)
Removes a child object.void
removeNotify(MDocument doc)
Called when the object is removed from a document.void
replaceAtom(MolAtom orig, MolAtom a)
Replaces a contained atom with another one.void
reverse()
Reverses the order of points.static void
rotate(DPoint3 center, double dphi, DPoint3 p)
Deprecated.As of Marvin 6.1, replaced byCTransform3D.setRotation(double, double, double, double)
andCTransform3D.setRotationCenter(DPoint3)
.void
setArcAngle(double phi)
Sets the central angle of the arc.void
setArrow(boolean v)
Sets or unsets arrow mode.void
setArrowFlags(int i, int f)
Sets the flags.void
setArrowLength(int i, double l)
Sets the arrow head length.void
setArrowWidth(int i, double l)
Sets the arrow head width.void
setAttribute(String s, String v)
Sets the value of an attribute.void
setFlags(int f)
Sets the flags.void
setPoints(MPoint[] p)
Sets the points.void
setSkip(int i, double d)
Sets the distance of the (visible) head or tail from the corresponding line end point.void
setThickness(double w)
Sets the line thickness.void
transform(CTransform3D t, int opts, CTransform3D trot)
Transforms all points, scales the arrow head widths and lengths.void
unselectContents()
Unselects the points.void
updateBoundingRect(double[] xyminm, CTransform3D pretrf)
Calculate the bounding rectangle.-
Methods inherited from class chemaxon.struc.MObject
addCdataAttributeKeys, addNotify, connectToSgroupOfAtom, containsPoint, distanceFrom, getBackground, getColor, getContainerMObject, getLineColor, isChildOf, isInternalSelectable, isReactionArrow, isSelectableNow, isSelected, isTransformable, makeColor, removeAtom, setBackground, setColor, setLineColor, setSelected, toString, updateBoundingRect
-
-
-
-
Field Detail
-
DEFAULT_THICKNESS
public static final double DEFAULT_THICKNESS
Default line thickness.- Since:
- Marvin 3.4, 06/09/2004
- See Also:
- Constant Field Values
-
DEFAULT_ARROW_HEAD_LENGTH
public static final double DEFAULT_ARROW_HEAD_LENGTH
Default arrow head length.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
- Constant Field Values
-
DEFAULT_ARROW_HEAD_WIDTH
public static final double DEFAULT_ARROW_HEAD_WIDTH
Default arrow head width.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
- Constant Field Values
-
DEFAULT_MAX_CROSS_SIZE
public static final double DEFAULT_MAX_CROSS_SIZE
Default maximum cross size.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
- Constant Field Values
-
DEFAULT_EQUILIBRIUM_HEAD_WIDTH
public static final double DEFAULT_EQUILIBRIUM_HEAD_WIDTH
Default equilibrium head width.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
- Constant Field Values
-
DEFAULT_RETROSYNTHETIC_HEAD_WIDTH
public static final double DEFAULT_RETROSYNTHETIC_HEAD_WIDTH
Default retrosynthetic head width.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
- Constant Field Values
-
TAIL
public static final int TAIL
Arrow tail (feather).- Since:
- Marvin 3.5, 06/30/2004
- See Also:
getArrowLength(int)
,getArrowWidth(int)
, Constant Field Values
-
HEAD
public static final int HEAD
Arrow head.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
getArrowLength(int)
,getArrowWidth(int)
, Constant Field Values
-
CLOSED_FLAG
public static final int CLOSED_FLAG
Closed flag.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
- Constant Field Values
-
THICKNESS_SET_FLAG
public static final int THICKNESS_SET_FLAG
Thickness is set flag.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
- Constant Field Values
-
ARROW_BACK_FLAG
public static final int ARROW_BACK_FLAG
Arrow points back.- Since:
- Marvin 3.5, 07/02/2004
- See Also:
- Constant Field Values
-
ARROW_HALF_MASK
public static final int ARROW_HALF_MASK
Unshifted mask of the half arrow option bits in flags.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
- Constant Field Values
-
ARROW_HALF_LEFT
public static final int ARROW_HALF_LEFT
Only the left half of the arrow head is drawn.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
- Constant Field Values
-
ARROW_HALF_RIGHT
public static final int ARROW_HALF_RIGHT
Only the right half of the arrow head is drawn.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
- Constant Field Values
-
ARROW_GROUP1_MASK
public static final int ARROW_GROUP1_MASK
Mask for the equilibrium and retrosynthetic arrow flags.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_RETROSYNTHETIC_FLAG
public static final int ARROW_RETROSYNTHETIC_FLAG
Retrosynthetic arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_EQUILIBRIUM_FLAG
public static final int ARROW_EQUILIBRIUM_FLAG
Equilibrium arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_GROUP2_MASK
public static final int ARROW_GROUP2_MASK
Mask for the curved, dashed and crosed arrow flags.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_DASHED_FLAG
public static final int ARROW_DASHED_FLAG
Dashed arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_CROSSED_FLAG
public static final int ARROW_CROSSED_FLAG
Crossed arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
ARROW_CURVED_FLAG
public static final int ARROW_CURVED_FLAG
Curved arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
- Constant Field Values
-
points
protected transient MPoint[] points
-
arrowFlags
protected transient int[] arrowFlags
Arrow flags.
-
-
Constructor Detail
-
MPolyline
public MPolyline()
Contructs an empty line.
-
MPolyline
public MPolyline(MPoint p1, MPoint p2)
Contructs a line with the specified endpoints.- Parameters:
p1
- the starting pointp2
- the endpoint
-
MPolyline
public MPolyline(MPoint p1, MPoint p2, Color c, Color bg)
Contructs a line with the specified endpoints.- Parameters:
p1
- the starting pointp2
- the endpointc
- the colorbg
- the background color
-
MPolyline
protected MPolyline(boolean closed, Color c, Color bg)
Creates a closed polyline.- Parameters:
closed
- the polyline is closed if true, open otherwisec
- the colorbg
- the background color
-
MPolyline
protected MPolyline(MPolyline l)
Copy constructor.- Parameters:
l
- the original polyline
-
-
Method Detail
-
copyProperties
public void copyProperties(MPolyline l)
Copies line properties to another line object.- Parameters:
l
- the other line- Since:
- Marvin 3.5, 07/13/2004
-
isArrow
public boolean isArrow()
Checks if it is an arrow.- Returns:
- true if the line has an arrow head or tail, false otherwise
- Since:
- Marvin 3.5, 06/30/2004
-
setArrow
public void setArrow(boolean v)
Sets or unsets arrow mode.- Parameters:
v
-true
to make an arrow from the line,false
to remove arrow properties- Since:
- Marvin 3.5, 06/30/2004
-
setPoints
public void setPoints(MPoint[] p)
Sets the points.- Parameters:
p
- the points
-
getFlags
public int getFlags()
Gets the flags.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
CLOSED_FLAG
,THICKNESS_SET_FLAG
-
setFlags
public void setFlags(int f)
Sets the flags.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
CLOSED_FLAG
,THICKNESS_SET_FLAG
-
getArrowFlags
public int getArrowFlags(int i)
Gets the arrow flags.- Since:
- Marvin 3.5, 07/01/2004
-
setArrowFlags
public void setArrowFlags(int i, int f)
Sets the flags. arrowFlags[MPolyline.HEAD] tells the type of the arrow.- Since:
- Marvin 3.5, 07/01/2004
-
getSkip
public double getSkip(int i)
Gets the distance of the (visible) head or tail from the corresponding line end point.
-
setSkip
public void setSkip(int i, double d)
Sets the distance of the (visible) head or tail from the corresponding line end point.
-
hasColor
public boolean hasColor()
A polyline does not have a non-line, non-background color.
-
hasLineColor
public boolean hasLineColor()
A polyline have a line color always.- Overrides:
hasLineColor
in classMObject
- Returns:
- true
-
hasBackground
public boolean hasBackground()
A polyline has a background only if it is closed.- Overrides:
hasBackground
in classMObject
- Returns:
- true if closed
-
isThicknessSet
public boolean isThicknessSet()
Checks if the line thickness is set. If it is not set, then the default value is used.- Returns:
- true if thickness is set, false otherwise
- Since:
- Marvin 3.4, 06/09/2004
- See Also:
DEFAULT_THICKNESS
-
getThickness
public double getThickness()
Gets the line thickness.- Returns:
- the line thickness
- Since:
- Marvin 3.4, 06/09/2004
-
setThickness
public void setThickness(double w)
Sets the line thickness.- Parameters:
w
- thickness value or 0 to use default- Since:
- Marvin 3.4, 06/09/2004
-
getArcAngle
public double getArcAngle()
Gets the central angle of the arc.- Returns:
- the central angle of the arc or zero if the line is linear.
- Since:
- Marvin 3.5, 07/02/2004
-
setArcAngle
public void setArcAngle(double phi)
Sets the central angle of the arc.- Parameters:
phi
- the central angle of the arc, zero makes the line linear- Since:
- Marvin 3.5, 07/02/2004
-
getArcRadius
public double getArcRadius(CTransform3D t)
Gets the arc radius.- Parameters:
t
- the transformation matrix- Returns:
- the radius
- Since:
- Marvin 4.1, 04/28/2006
-
getArrowLength
public double getArrowLength(int i)
Gets the arrow head length.
-
setArrowLength
public void setArrowLength(int i, double l)
Sets the arrow head length.
-
getArrowWidth
public double getArrowWidth(int i)
Gets the arrow head width.
-
setArrowWidth
public void setArrowWidth(int i, double l)
Sets the arrow head width.
-
getPointCount
public int getPointCount()
Gets the number of points.- Specified by:
getPointCount
in classMObject
- Returns:
- the number of points (at least 2)
-
getPoints
public MPoint[] getPoints()
Gets the points.- Returns:
- the points
- Since:
- Marvin 4.1, 03/06/2006
-
getPoint
public MPoint getPoint(int i)
Gets the clone of a point of the line.
-
getPointRefCount
public int getPointRefCount()
Gets the number of point references.- Overrides:
getPointRefCount
in classMObject
- Returns:
- the number of points and midpoints
-
getPointRef
public MPoint getPointRef(int i, CTransform3D trot)
Gets a reference to a point or midpoint in the polyline.- Overrides:
getPointRef
in classMObject
- Parameters:
i
- the point indextrot
- the viewing transformation or null- Returns:
- the point's reference
- Since:
- Marvin 4.1, 05/01/2006
-
fixMidPointClones
public static void fixMidPointClones(MObject[] objarr0, MObject[] objarr)
Fixes the parents of the cloned MMidPoints.- Parameters:
objarr0
- the original object arrayobjarr
- the cloned object array
-
transform
public void transform(CTransform3D t, int opts, CTransform3D trot)
Transforms all points, scales the arrow head widths and lengths.- Specified by:
transform
in classMObject
- Parameters:
t
- the transformation matrixopts
- transform options or 0trot
- the viewing transformation or null- See Also:
MObject.TRANSFORM_DISTORT
-
reverse
public void reverse()
Reverses the order of points.- Since:
- Marvin 5.0, 09/20/2007
-
updateBoundingRect
public void updateBoundingRect(double[] xyminm, CTransform3D pretrf)
Calculate the bounding rectangle.- Overrides:
updateBoundingRect
in classMObject
- Parameters:
xyminm
- array containing the current minimum x, y and maximum x, y coordinatespretrf
- transformation matrix- Since:
- Marvin 5.0, 02/16/2007
-
unselectContents
public void unselectContents()
Unselects the points.- Overrides:
unselectContents
in classMObject
-
calcCenter
public void calcCenter(DPoint3 p, CTransform3D trot)
Calculates the geometrical center.- Specified by:
calcCenter
in classMObject
- Parameters:
p
- store the coordinates heretrot
- the viewing transformation or null- Since:
- Marvin 4.1, 04/28/2006
-
getMidPointLocation
public DPoint3 getMidPointLocation(int i, CTransform3D t)
Gets the middle point of the arc.- Parameters:
i
- the polyline point indext
- the transformation matrix or null- Returns:
- the middle point
- Since:
- Marvin 4.1, 04/26/2006
-
distanceFrom
public double distanceFrom(double x, double y, CTransform3D t)
Gets the 2D distance from the specified point.- Specified by:
distanceFrom
in classMObject
- Parameters:
x
- the x coordinatey
- the y coordinatet
- transformation or null- Since:
- 3.5, 11/04/2004
-
rotate
@Deprecated public static void rotate(DPoint3 center, double dphi, DPoint3 p)
Deprecated.As of Marvin 6.1, replaced byCTransform3D.setRotation(double, double, double, double)
andCTransform3D.setRotationCenter(DPoint3)
.Rotates the third argument around the first argument with the second argument.- Parameters:
center
- the center of rotationdphi
- the angle of rotationp
- the point to rotate
-
getArcCenter
public static DPoint3 getArcCenter(DPoint3 p1, DPoint3 p2, double angle)
Returns the arc center. For internal use only.- Parameters:
p1
- the first arc endpointp2
- the second arc endpointangle
- the arc angle (degrees)- Returns:
- the arc center
- Since:
- Marvin 3.5.1
-
isEmpty
public boolean isEmpty()
A polyline becomes empty if it has less than 2 points.
-
hasOutline
public boolean hasOutline()
Does it have an outline?- Returns:
- true if the color is not null or the object does not have a face
-
hasFace
public boolean hasFace()
Is it 2 dimensional?- Returns:
- true if closed and it has a background color, false otherwise
-
removeChild
public void removeChild(MObject o)
Description copied from class:MObject
Removes a child object.- Overrides:
removeChild
in classMObject
- Parameters:
o
- the child
-
addAttributeKeys
public void addAttributeKeys(List<String> v)
Adds the attribute names to the specified vector.- Overrides:
addAttributeKeys
in classMObject
- Parameters:
v
- the vector- Since:
- Marvin 3.4, 06/09/2004
-
getAttribute
public String getAttribute(String s)
Gets the value of an attribute.- Overrides:
getAttribute
in classMObject
- Parameters:
s
- the attribute name- Returns:
- the value or null
- Since:
- Marvin 3.4, 06/09/2004
-
setAttribute
public void setAttribute(String s, String v)
Sets the value of an attribute.- Overrides:
setAttribute
in classMObject
- Parameters:
s
- the attribute namev
- the attribute value- Since:
- Marvin 3.4, 07/01/2004
-
containsAtom
public boolean containsAtom(MolAtom a)
Checks if the atom set contains the specified atom object.- Overrides:
containsAtom
in classMObject
- Returns:
- true if the atom set contains the specified object, false otherwise
- Since:
- Marvin 3.5, 07/04/2004
-
replaceAtom
public void replaceAtom(MolAtom orig, MolAtom a)
Replaces a contained atom with another one.- Overrides:
replaceAtom
in classMObject
- Parameters:
orig
- the original atoma
- the new atom- Since:
- Marvin 3.5, 07/04/2004
-
checkValidity
public boolean checkValidity(MDocument doc, Collection<MolAtom> invec)
Is it a valid object in the document?- Overrides:
checkValidity
in classMObject
- Parameters:
doc
- the documentinvec
- collection of invalid atoms or null- Returns:
- true if the object is valid, false if it contains an invalid point
- Since:
- Marvin 3.5, 07/06/2004
-
finishCloning
public void finishCloning(MDocument olddoc, MDocument newdoc)
Finish cloning a document.- Overrides:
finishCloning
in classMObject
- Since:
- Marvin 3.5, 07/02/2004
-
getMirroredArrowFlags
protected int getMirroredArrowFlags(int i)
Mirror transformation for arrow heads.
-
fixClonedPoints
public void fixClonedPoints(MObject[] objarr0, MObject[] objarr, int i)
Description copied from class:MObject
Sets the parent object for this object. Should only be called by the copy constructor.- Overrides:
fixClonedPoints
in classMObject
- Parameters:
objarr0
- the new object listobjarr
- the old object listi
- the corresponding index from the old object list
-
removeNotify
public void removeNotify(MDocument doc)
Description copied from class:MObject
Called when the object is removed from a document.- Overrides:
removeNotify
in classMObject
- Parameters:
doc
- The document from which the object is removed.
-
-