Class MPolyline

    • 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
      • 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 point
        p2 - the endpoint
      • MPolyline

        public MPolyline​(MPoint p1,
                         MPoint p2,
                         Color c,
                         Color bg)
        Contructs a line with the specified endpoints.
        Parameters:
        p1 - the starting point
        p2 - the endpoint
        c - the color
        bg - 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 otherwise
        c - the color
        bg - the background color
      • MPolyline

        protected MPolyline​(MPolyline l)
        Copy constructor.
        Parameters:
        l - the original polyline
      • MPolyline

        public MPolyline​(MPolyline l,
                         MPoint p)
        Contructs a polyline from the specified starting polyline and endpoint.
        Parameters:
        l - the starting polyline
        p - the new endpoint
    • 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
      • clone

        public MPolyline clone()
        Description copied from class: MObject
        Creates a clone.
        Overrides:
        clone in class MObject
        Returns:
        the clone
      • 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.
        Parameters:
        i - HEAD or TAIL
        Returns:
        the skip value
        Since:
        Marvin 3.5, 07/15/2004
      • setSkip

        public void setSkip​(int i,
                            double d)
        Sets the distance of the (visible) head or tail from the corresponding line end point.
        Parameters:
        i - HEAD or TAIL
        d - the skip value
        Since:
        Marvin 3.5, 07/15/2004
      • hasColor

        public boolean hasColor()
        A polyline does not have a non-line, non-background color.
        Overrides:
        hasColor in class MObject
        Returns:
        false
      • hasLineColor

        public boolean hasLineColor()
        A polyline have a line color always.
        Overrides:
        hasLineColor in class MObject
        Returns:
        true
      • hasBackground

        public boolean hasBackground()
        A polyline has a background only if it is closed.
        Overrides:
        hasBackground in class MObject
        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.
        Parameters:
        i - HEAD or TAIL
        Returns:
        the arrow head length
        Since:
        Marvin 3.5, 06/30/2004
      • setArrowLength

        public void setArrowLength​(int i,
                                   double l)
        Sets the arrow head length.
        Parameters:
        i - HEAD or TAIL
        l - the head length
        Since:
        Marvin 3.5, 06/30/2004
      • getArrowWidth

        public double getArrowWidth​(int i)
        Gets the arrow head width.
        Parameters:
        i - HEAD or TAIL
        Returns:
        the arrow head width
        Since:
        Marvin 3.5, 06/30/2004
      • setArrowWidth

        public void setArrowWidth​(int i,
                                  double l)
        Sets the arrow head width.
        Parameters:
        i - HEAD or TAIL
        l - the head width
        Since:
        Marvin 3.5, 06/30/2004
      • getPointCount

        public int getPointCount()
        Gets the number of points.
        Specified by:
        getPointCount in class MObject
        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.
        Specified by:
        getPoint in class MObject
        Parameters:
        i - the point index
        Returns:
        the point's clone
      • getPointRefCount

        public int getPointRefCount()
        Gets the number of point references.
        Overrides:
        getPointRefCount in class MObject
        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 class MObject
        Parameters:
        i - the point index
        trot - 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 array
        objarr - 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 class MObject
        Parameters:
        t - the transformation matrix
        opts - transform options or 0
        trot - 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 class MObject
        Parameters:
        xyminm - array containing the current minimum x, y and maximum x, y coordinates
        pretrf - transformation matrix
        Since:
        Marvin 5.0, 02/16/2007
      • unselectContents

        public void unselectContents()
        Unselects the points.
        Overrides:
        unselectContents in class MObject
      • calcCenter

        public void calcCenter​(DPoint3 p,
                               CTransform3D trot)
        Calculates the geometrical center.
        Specified by:
        calcCenter in class MObject
        Parameters:
        p - store the coordinates here
        trot - 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 index
        t - 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 class MObject
        Parameters:
        x - the x coordinate
        y - the y coordinate
        t - transformation or null
        Since:
        3.5, 11/04/2004
      • getArcRadius

        public static double getArcRadius​(DPoint3 pointA,
                                          DPoint3 pointB,
                                          double angle)
      • getArcCenter

        public static DPoint3 getArcCenter​(DPoint3 p1,
                                           DPoint3 p2,
                                           double angle)
        Returns the arc center. For internal use only.
        Parameters:
        p1 - the first arc endpoint
        p2 - the second arc endpoint
        angle - 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.
        Overrides:
        isEmpty in class MObject
        Returns:
        true if empty, false otherwise
      • 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 class MObject
        Parameters:
        o - the child
      • addAttributeKeys

        public void addAttributeKeys​(List<String> v)
        Adds the attribute names to the specified vector.
        Overrides:
        addAttributeKeys in class MObject
        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 class MObject
        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 class MObject
        Parameters:
        s - the attribute name
        v - 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 class MObject
        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 class MObject
        Parameters:
        orig - the original atom
        a - 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 class MObject
        Parameters:
        doc - the document
        invec - 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
      • 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 class MObject
        Parameters:
        objarr0 - the new object list
        objarr - the old object list
        i - 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 class MObject
        Parameters:
        doc - The document from which the object is removed.