Class MObject

java.lang.Object
chemaxon.struc.MObject
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
MChemicalStruct, MPoint, MPolyline

@PublicAPI public abstract class MObject extends Object implements Serializable, Cloneable
Paintable object. This class and its subclasses are under development, use them at your own risk!
Since:
Marvin 3.3, 10/18/2003
See Also:
  • Field Details

    • TRANSFORM_DISTORT

      public static final int TRANSFORM_DISTORT
      Distorting transformations are allowed.
      Since:
      Marvin 3.5, 07/06/2004
      See Also:
  • Constructor Details

    • MObject

      protected MObject(Color c, Color lc, Color bg)
      Contructs a paintable object with the specified color.
      Parameters:
      c - the color of the object
      lc - the line color or null to use the default
      bg - the background color
    • MObject

      protected MObject(MObject o)
      Copy constructor.
  • Method Details

    • clone

      public MObject clone()
      Creates a clone.
      Overrides:
      clone in class Object
      Returns:
      the clone
    • isEmpty

      public boolean isEmpty()
      An object may become empty if all the children are removed.
      Returns:
      true if empty, false otherwise
    • isChildOf

      public boolean isChildOf(MObject o)
      Is this object a children of another one?
      Parameters:
      o - a possible parent
      Returns:
      true if the other object is the parent, false otherwise
    • checkValidity

      public boolean checkValidity(MDocument doc, Collection<MolAtom> invec)
      Is it a valid object in the document?
      Parameters:
      doc - the document
      invec - collection of invalid atoms or null
      Returns:
      true if the object is valid, false if it contains a subobject that is not part of the document
    • removeChild

      public void removeChild(MObject o)
      Removes a child object.
      Parameters:
      o - the child
    • containsAtom

      public boolean containsAtom(MolAtom a)
      Checks if the object contains the specified atom reference.
      Returns:
      true if the object contains the atom, false otherwise
      Since:
      Marvin 3.5, 07/04/2004
    • replaceAtom

      public void replaceAtom(MolAtom orig, MolAtom a)
      Replaces a contained atom with another one.
      Parameters:
      orig - the original atom
      a - the new atom
      Since:
      Marvin 3.5, 07/04/2004
    • isTransformable

      public boolean isTransformable()
      Is it a transformable object?
      Returns:
      true if the object can be transformed, false otherwise
      Since:
      Marvin 3.5, 07/06/2004
    • isInternalSelectable

      public boolean isInternalSelectable()
      Is it a selection only internal object?
      Returns:
      true if the object is selectable but only exists as part of a real object, false otherwise
    • isSelectableNow

      public boolean isSelectableNow()
      Is the object selectable now?
      Returns:
      true for ordinary objects, false for some internal selectables
    • addNotify

      public void addNotify(MDocument doc)
      Called when the object is added to a document.
      Parameters:
      doc - The document the object is being added to.
    • removeNotify

      public void removeNotify(MDocument doc)
      Called when the object is removed from a document.
      Parameters:
      doc - The document from which the object is removed.
    • getPointCount

      public abstract int getPointCount()
      Gets the number of points.
      Returns:
      the number of points
    • getPoint

      public abstract MPoint getPoint(int i)
      Gets a point of the object.
      Parameters:
      i - the point index
      Returns:
      the point's clone
    • getPointRefCount

      public int getPointRefCount()
      Gets the number of point references.
      Returns:
      the number of point references.
    • updateBoundingRect

      public void updateBoundingRect(double[] xyminm, CTransform3D pretrf)
      Calculate the bounding rectangle.
      Parameters:
      xyminm - array containing the current minimum x, y and maximum x, y coordinates
      pretrf - transformation matrix
      Since:
      Marvin 5.0, 02/16/2007
    • updateBoundingRect

      protected void updateBoundingRect(double[] xyminm, CTransform3D pretrf, double radious)
      Calculate the bounding rectangle.
      Parameters:
      xyminm - array containing the current minimum x, y and maximum x, y coordinates
      pretrf - transformation matrix
      radious - minimal radious of points
      Since:
      Marvin 5.0, 02/16/2007
    • getPointRef

      public MPoint getPointRef(int i, CTransform3D trot)
      Gets a reference to a point of the object.
      Parameters:
      i - the point index
      trot - the viewing transformation or null
      Returns:
      the point's reference
      Since:
      Marvin 4.1, 05/01/2006
    • addAttributeKeys

      public void addAttributeKeys(List<String> l)
      Adds the attribute names to the specified list. CDATA attributes are not added.
      Parameters:
      l - the list
    • addCdataAttributeKeys

      public void addCdataAttributeKeys(List<String> l)
      Adds attribute names to the specified list. Only CDATA attributes are added.
      Parameters:
      l - the list
    • getAttribute

      public String getAttribute(String s)
      Gets the value of an attribute.
      Parameters:
      s - the attribute name
      Returns:
      the value or null
    • setAttribute

      public void setAttribute(String s, String v)
      Sets the value of an attribute.
      Parameters:
      s - the attribute name
      v - the attribute value
    • transform

      public abstract void transform(CTransform3D t, int opts, CTransform3D trot)
      Transforms the object.
      Parameters:
      t - the transformation matrix
      opts - transform options or 0
      trot - the viewing transformation or null
      Since:
      Marvin 4.1, 04/28/2006
      See Also:
    • calcCenter

      public abstract void calcCenter(DPoint3 p, CTransform3D t)
      Calculates the geometrical center.
      Parameters:
      p - store the coordinates here
      t - the transformation matrix or null
      Since:
      Marvin 4.1, 04/28/2006
    • distanceFrom

      public double distanceFrom(double x, double y)
      Gets the 2D distance from the specified point.
      Parameters:
      x - the x coordinate
      y - the y coordinate
    • distanceFrom

      public abstract double distanceFrom(double x, double y, CTransform3D t)
      Gets the 2D distance from the specified point.
      Parameters:
      x - the x coordinate
      y - the y coordinate
      t - transformation or null
      Since:
      Marvin 3.5, 11/04/2004
    • containsPoint

      public boolean containsPoint(DPoint3 p, CTransform3D trot)
    • isSelected

      public boolean isSelected()
      Is the object selected?
      Returns:
      true if selected, false otherwise
    • setSelected

      public void setSelected(boolean s)
      Selects or unselects the object.
      Parameters:
      s - use true to select, false to unselect
    • isReactionArrow

      public boolean isReactionArrow(MoleculeGraph mol)
    • unselectContents

      public void unselectContents()
      Unselects sub-objects.
    • getColor

      public Color getColor()
      Gets the color of the object.
      Returns:
      the color or null
    • setColor

      public void setColor(Color c)
      Sets the color of the object.
      Parameters:
      c - the color or null to use the default
    • getLineColor

      public Color getLineColor()
      Gets the line color of the object.
      Returns:
      the color or null if there are no lines
    • setLineColor

      public void setLineColor(Color c)
      Sets the color of the object.
      Parameters:
      c - the color or null
    • hasColor

      public boolean hasColor()
      Can the object have a color (non-line and non-background)?
      Returns:
      true if it can have a color, false otherwise
    • hasLineColor

      public boolean hasLineColor()
      Can the object have a line color?
      Returns:
      true if it can have a line color, false otherwise
    • hasBackground

      public boolean hasBackground()
      Can the object have a background?
      Returns:
      true if it has a background, false otherwise
    • getBackground

      public Color getBackground()
      Gets the background color of the object.
      Returns:
      the color
    • setBackground

      public void setBackground(Color c)
      Sets the background color of the object.
      Parameters:
      c - the color
    • finishCloning

      public void finishCloning(MDocument olddoc, MDocument newdoc)
      Finish cloning a document. Called by the copy constructor.
      Since:
      Marvin 3.5, 07/02/2004
    • toString

      public String toString()
      Overrides Object.toString() to ease debugging. Returns a string consisting of the classname (without the package name!), the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object.
      Overrides:
      toString in class Object
      Returns:
      a string representation of the object
      Since:
      Marvin 4.1, 05/01/2006
    • makeColor

      protected static Color makeColor(String s)
    • removeAtom

      public void removeAtom(MolAtom atom)
      Removes the atom from the corresponding molecule object.
      Parameters:
      atom - the atom to remove
    • fixClonedPoints

      public void fixClonedPoints(MObject[] objarr0, MObject[] objarr, int i)
      Sets the parent object for this object. Should only be called by the copy constructor.
      Parameters:
      objarr0 - the new object list
      objarr - the old object list
      i - the corresponding index from the old object list
    • connectToSgroupOfAtom

      public void connectToSgroupOfAtom(SuperatomSgroup sg, MolAtom a)
    • getContainerMObject

      public MObject getContainerMObject(MDocument doc)