Class MObject

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

@PublicApi public abstract class MObject extends Object implements Serializable, Cloneable
Paintable object.
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)
    • propertySet

      public Set<Map.Entry<String,Object>> propertySet()
      Returns a collection view of the properties (property key - property value mappings) of this MObject. Each element in the returned collection is a Map.Entry. Changes to the properties are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding property from this, via the Iterator.remove, Collection.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
      Returns:
      a collection view of the properties of this MObject.
    • propertyKeySet

      public Set<String> propertyKeySet()
      Returns a set view of the property keys of this MObject. Changes to the properties of this MObject are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding property from this MObject, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
      Returns:
      set view of the property keys of this MObject.
    • containsPropertyKey

      public boolean containsPropertyKey(String key)
      Returns true if this MObject has a mapping for the specified property key.
      Parameters:
      key - the property key which is to be searched for.
      Returns:
      true if this map contains a mapping for the specified property key.
    • removeProperty

      public Object removeProperty(String key)
      Removes the mapping for this property key from this MObject if present.
      Parameters:
      key - property key whose mapping is to be removed from the MObject.
      Returns:
      previous property value associated with specified property key, or null if there was no mapping for property key. A null return can also indicate that the property mapping previously associated null with the specified property key.
    • propertyCount

      public int propertyCount()
      Returns the number of property (property key - property value) mappings of this MObject.
      Returns:
      the number of property mappings of this MObject.
    • getProperty

      public Object getProperty(String key)
      Returns the property value to which the specified property key is mapped at this MObject, or null if this MObject has no mapping for this property key. A return value of null does not necessarily indicate that the MObject has no mapping for the property key; it is also possible that the MObject explicitly maps the property key to null. The containsKey method may be used to distinguish these two cases.
      Parameters:
      key - the property key whose associated property value is to be returned.
      Returns:
      the property value to which this MObject maps the specified property key, or null if the MObject has no mapping for this property key.
    • putProperty

      public void putProperty(String key, Object value)
      Associates the specified value with the specified key at this MObject. If this MObject previously had a mapping for this property key, the old property value is replaced.
      Parameters:
      key - property key with which the specified value is to be associated
      value - property value to be associated with the specified property key.
    • clearProperties

      public void clearProperties()
      Removes all properties from this MObject.