Package chemaxon.struc.graphics
Class MPolyline
java.lang.Object
chemaxon.struc.MObject
chemaxon.struc.graphics.MPolyline
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
MAssigner
,MEFlow
,MRArrow
,MRectangle
Polyline object.
- Since:
- Marvin 3.3, 10/03/2003
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Arrow points back.static final int
Crossed arrow flag.static final int
Curved arrow flag.static final int
Dashed arrow flag.static final int
Equilibrium arrow flag.static final int
Mask for the equilibrium and retrosynthetic arrow flags.static final int
Mask for the curved, dashed and crosed arrow flags.static final int
Only the left half of the arrow head is drawn.static final int
Unshifted mask of the half arrow option bits in flags.static final int
Only the right half of the arrow head is drawn.static final int
Retrosynthetic arrow flag.protected int[]
Arrow flags.static final int
Closed flag.static final double
Default arrow head length.static final double
Default arrow head width.static final double
Default equilibrium head width.static final double
Default maximum cross size.static final double
Default retrosynthetic head width.static final double
Default line thickness.static final int
Arrow head.protected MPoint[]
static final int
Arrow tail (feather).static final int
Thickness is set flag.Fields inherited from class chemaxon.struc.MObject
TRANSFORM_DISTORT
-
Constructor Summary
ModifierConstructorDescriptionContructs an empty line.protected
Creates a closed polyline.protected
Copy constructor.Contructs a polyline from the specified starting polyline and endpoint.Contructs a line with the specified endpoints.Contructs a line with the specified endpoints. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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?clone()
Creates a clone.boolean
Checks if the atom set contains the specified atom object.void
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
Gets the central angle of the arc.static DPoint3
getArcCenter
(DPoint3 p1, DPoint3 p2, double angle) Returns the arc center.double
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.Gets the value of an attribute.int
getFlags()
Gets the flags.static DPoint3
getLineMiddlePoint
(DPoint3 p1, DPoint3 p2) getMidPointLocation
(int i, CTransform3D t) Gets the middle point of the arc.protected int
getMirroredArrowFlags
(int i) Mirror transformation for arrow heads.getPoint
(int i) Gets the clone of a point of the line.int
Gets the number of points.getPointRef
(int i, CTransform3D trot) Gets a reference to a point or midpoint in the polyline.int
Gets the number of point references.MPoint[]
Gets the points.double
getSkip
(int i) Gets the distance of the (visible) head or tail from the corresponding line end point.double
Gets the line thickness.boolean
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
A polyline have a line color always.boolean
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
Checks if the line thickness is set.void
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
Deprecated, for removal: This API element is subject to removal in a future version.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
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
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 Details
-
DEFAULT_THICKNESS
public static final double DEFAULT_THICKNESSDefault line thickness.- Since:
- Marvin 3.4, 06/09/2004
- See Also:
-
DEFAULT_ARROW_HEAD_LENGTH
public static final double DEFAULT_ARROW_HEAD_LENGTHDefault arrow head length.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
-
DEFAULT_ARROW_HEAD_WIDTH
public static final double DEFAULT_ARROW_HEAD_WIDTHDefault arrow head width.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
-
DEFAULT_MAX_CROSS_SIZE
public static final double DEFAULT_MAX_CROSS_SIZEDefault maximum cross size.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
-
DEFAULT_EQUILIBRIUM_HEAD_WIDTH
public static final double DEFAULT_EQUILIBRIUM_HEAD_WIDTHDefault equilibrium head width.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
-
DEFAULT_RETROSYNTHETIC_HEAD_WIDTH
public static final double DEFAULT_RETROSYNTHETIC_HEAD_WIDTHDefault retrosynthetic head width.- Since:
- Marvin 14.7.7, 07/01/2014
- See Also:
-
TAIL
public static final int TAILArrow tail (feather).- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
HEAD
public static final int HEADArrow head.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
CLOSED_FLAG
public static final int CLOSED_FLAGClosed flag.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
THICKNESS_SET_FLAG
public static final int THICKNESS_SET_FLAGThickness is set flag.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
ARROW_BACK_FLAG
public static final int ARROW_BACK_FLAGArrow points back.- Since:
- Marvin 3.5, 07/02/2004
- See Also:
-
ARROW_HALF_MASK
public static final int ARROW_HALF_MASKUnshifted mask of the half arrow option bits in flags.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
-
ARROW_HALF_LEFT
public static final int ARROW_HALF_LEFTOnly the left half of the arrow head is drawn.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
-
ARROW_HALF_RIGHT
public static final int ARROW_HALF_RIGHTOnly the right half of the arrow head is drawn.- Since:
- Marvin 3.5, 07/01/2004
- See Also:
-
ARROW_GROUP1_MASK
public static final int ARROW_GROUP1_MASKMask for the equilibrium and retrosynthetic arrow flags.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_RETROSYNTHETIC_FLAG
public static final int ARROW_RETROSYNTHETIC_FLAGRetrosynthetic arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_EQUILIBRIUM_FLAG
public static final int ARROW_EQUILIBRIUM_FLAGEquilibrium arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_GROUP2_MASK
public static final int ARROW_GROUP2_MASKMask for the curved, dashed and crosed arrow flags.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_DASHED_FLAG
public static final int ARROW_DASHED_FLAGDashed arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_CROSSED_FLAG
public static final int ARROW_CROSSED_FLAGCrossed arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
ARROW_CURVED_FLAG
public static final int ARROW_CURVED_FLAGCurved arrow flag.- Since:
- Marvin 5.10, 04/20/2012
- See Also:
-
points
-
arrowFlags
protected transient int[] arrowFlagsArrow flags.
-
-
Constructor Details
-
MPolyline
public MPolyline()Contructs an empty line. -
MPolyline
Contructs a line with the specified endpoints.- Parameters:
p1
- the starting pointp2
- the endpoint
-
MPolyline
Contructs a line with the specified endpoints.- Parameters:
p1
- the starting pointp2
- the endpointc
- the colorbg
- the background color
-
MPolyline
Creates a closed polyline.- Parameters:
closed
- the polyline is closed if true, open otherwisec
- the colorbg
- the background color
-
MPolyline
Copy constructor.- Parameters:
l
- the original polyline
-
MPolyline
Contructs a polyline from the specified starting polyline and endpoint.- Parameters:
l
- the starting polylinep
- the new endpoint
-
-
Method Details
-
copyProperties
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
Sets the points.- Parameters:
p
- the points
-
clone
Description copied from class:MObject
Creates a clone. -
getFlags
public int getFlags()Gets the flags.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
setFlags
public void setFlags(int f) Sets the flags.- Since:
- Marvin 3.5, 06/30/2004
- See Also:
-
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:
-
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
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
Gets the points.- Returns:
- the points
- Since:
- Marvin 4.1, 03/06/2006
-
getPoint
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
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
Fixes the parents of the cloned MMidPoints.- Parameters:
objarr0
- the original object arrayobjarr
- the cloned object array
-
transform
Transforms all points, scales the arrow head widths and lengths. -
reverse
public void reverse()Reverses the order of points.- Since:
- Marvin 5.0, 09/20/2007
-
updateBoundingRect
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
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
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
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(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static void rotate(DPoint3 center, double dphi, DPoint3 p) Deprecated, for removal: This API element is subject to removal in a future version.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
-
getLineMiddlePoint
-
getArcRadius
-
getArcCenter
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
Description copied from class:MObject
Removes a child object.- Overrides:
removeChild
in classMObject
- Parameters:
o
- the child
-
addAttributeKeys
Adds the attribute names to the specified vector.- Overrides:
addAttributeKeys
in classMObject
- Parameters:
v
- the vector- Since:
- Marvin 3.4, 06/09/2004
-
getAttribute
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
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
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
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
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
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
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
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.
-
CTransform3D.setRotation(double, double, double, double)
andCTransform3D.setRotationCenter(DPoint3)
.