Package mgui.geometry

Class Shape2D

java.lang.Object
mgui.geometry.Shape2D
All Implemented Interfaces:
java.lang.Cloneable, Shape, XMLObject
Direct Known Subclasses:
Circle2D, Ellipse2D, LineSegment2D, Point2D, PointSet2D, Polygon2D, RadialRep2D, Radius2D, Rect2D, Text2D, Triangle2D, Vector2D

public abstract class Shape2D
extends java.lang.Object
implements Shape, java.lang.Cloneable
Base class to be extended by all 2D shapes.
Since:
1.0
Version:
1.0
Author:
Andrew Reid
  • Nested Class Summary

    Nested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject

    XMLObject.XMLEncoding, XMLObject.XMLType
  • Constructor Summary

    Constructors
    Constructor Description
    Shape2D()  
  • Method Summary

    Modifier and Type Method Description
    java.lang.Object clone()  
    boolean contains​(org.jogamp.vecmath.Point2f thisPoint)  
    Rect2D getBounds()
    Returns a rectangle which bounds this 2D shape
    org.jogamp.vecmath.Point2f getCenterPt()  
    float[] getCoords()
    Returns the coordinates of this shape as an array of length 2*n.
    java.lang.String getDTD()
    Returns the Data Type Declaration (DTD) for this object's XML representation
    java.lang.String getLocalName()
    Returns the local name associated with this XML object.
    float getProximity​(org.jogamp.vecmath.Point2f thisPoint)  
    org.jogamp.vecmath.Point2f getProximityPoint​(org.jogamp.vecmath.Point2f thisPoint)  
    java.lang.String getShortXML​(int tab)
    Returns a short XML representation of this object.
    int getSize()
    Returns the number of vertices in this shape.
    abstract org.jogamp.vecmath.Point2f getVertex​(int i)  
    abstract java.util.ArrayList<org.jogamp.vecmath.Point2f> getVertices()  
    void getVertices​(java.util.ArrayList<org.jogamp.vecmath.Point2f> theNodes)  
    java.lang.String getXML()
    Returns this object's XML representation as a single string.
    java.lang.String getXML​(int tab)
    Returns this object's XML representation as a single string.
    java.lang.String getXMLSchema()
    Returns the XML schema for this object's XML representation
    void handleXMLElementEnd​(java.lang.String localName)
    Handles the end of an XML element.
    void handleXMLElementStart​(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
    Handles the start of an XML element.
    void handleXMLString​(java.lang.String s)
    Handles a string within an XML element.
    void setCoords​(float[] coords)
    Sets the coordinates of this shape from coords.
    abstract void setVertices​(java.util.ArrayList<org.jogamp.vecmath.Point2f> n)  
    void setVertices​(org.jogamp.vecmath.Point2f[] n)  
    boolean transform​(Jama.Matrix T)
    Transform this shape with affine transformation Jama matrix M.
    boolean transform​(org.jogamp.vecmath.Matrix4d M)
    Transform this shape with affine transformation matrix M.
    void writeXML​(int tab, java.io.Writer writer)
    Writes the XML representation of this object to file.
    void writeXML​(int tab, java.io.Writer writer, ProgressUpdater progress_bar)
    Writes the XML representation of this object to file, as XMLType.Normal.
    void writeXML​(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar)
    Writes the XML representation of this object to file.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Shape2D

      public Shape2D()
  • Method Details

    • getProximity

      public float getProximity​(org.jogamp.vecmath.Point2f thisPoint)
    • getProximityPoint

      public org.jogamp.vecmath.Point2f getProximityPoint​(org.jogamp.vecmath.Point2f thisPoint)
    • transform

      public boolean transform​(org.jogamp.vecmath.Matrix4d M)
      Description copied from interface: Shape
      Transform this shape with affine transformation matrix M.
      Specified by:
      transform in interface Shape
      Returns:
    • contains

      public boolean contains​(org.jogamp.vecmath.Point2f thisPoint)
    • getCenterPt

      public org.jogamp.vecmath.Point2f getCenterPt()
    • getVertex

      public abstract org.jogamp.vecmath.Point2f getVertex​(int i)
    • getVertices

      public abstract java.util.ArrayList<org.jogamp.vecmath.Point2f> getVertices()
    • setVertices

      public void setVertices​(org.jogamp.vecmath.Point2f[] n)
    • setVertices

      public abstract void setVertices​(java.util.ArrayList<org.jogamp.vecmath.Point2f> n)
    • getVertices

      public void getVertices​(java.util.ArrayList<org.jogamp.vecmath.Point2f> theNodes)
    • getSize

      public int getSize()
      Returns the number of vertices in this shape. Subclasses can provide more efficient implementations.
      Specified by:
      getSize in interface Shape
      Returns:
      the number of vertices
    • getBounds

      public Rect2D getBounds()
      Returns a rectangle which bounds this 2D shape
      Returns:
    • getCoords

      public float[] getCoords()
      Returns the coordinates of this shape as an array of length 2*n. Every two sequential elements in the array represents a coordinate.

      All shape classes which implement coordinates must implement this method.

      Specified by:
      getCoords in interface Shape
    • setCoords

      public void setCoords​(float[] coords)
      Sets the coordinates of this shape from coords. Every two sequential elements in the array represents a coordinate.

      All shape classes which implement coordinates must implement this method.

      Specified by:
      setCoords in interface Shape
      Parameters:
      coords - An array of length 2*n
    • clone

      public java.lang.Object clone()
      Overrides:
      clone in class java.lang.Object
    • transform

      public boolean transform​(Jama.Matrix T)
      Description copied from interface: Shape
      Transform this shape with affine transformation Jama matrix M.
      Specified by:
      transform in interface Shape
      Returns:
    • getDTD

      public java.lang.String getDTD()
      Description copied from interface: XMLObject
      Returns the Data Type Declaration (DTD) for this object's XML representation

      See http://en.wikipedia.org/wiki/Document_Type_Definition for a description.

      Specified by:
      getDTD in interface XMLObject
      Returns:
    • getLocalName

      public java.lang.String getLocalName()
      Description copied from interface: XMLObject
      Returns the local name associated with this XML object.
      Specified by:
      getLocalName in interface XMLObject
      Returns:
    • getXML

      public java.lang.String getXML()
      Description copied from interface: XMLObject
      Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Returns:
    • getXML

      public java.lang.String getXML​(int tab)
      Description copied from interface: XMLObject
      Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the opening XML wrapper
      Returns:
    • getXMLSchema

      public java.lang.String getXMLSchema()
      Description copied from interface: XMLObject
      Returns the XML schema for this object's XML representation

      See http://en.wikipedia.org/wiki/XML_schema.

      Specified by:
      getXMLSchema in interface XMLObject
      Returns:
    • handleXMLElementEnd

      public void handleXMLElementEnd​(java.lang.String localName)
      Description copied from interface: XMLObject
      Handles the end of an XML element.
      Specified by:
      handleXMLElementEnd in interface XMLObject
      Parameters:
      localName - Local name of the element
    • handleXMLElementStart

      public void handleXMLElementStart​(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
      Description copied from interface: XMLObject
      Handles the start of an XML element.
      Specified by:
      handleXMLElementStart in interface XMLObject
      Parameters:
      localName - Local name of the element
      attributes - Set of element attributes
      type - The XMLType of this element
    • handleXMLString

      public void handleXMLString​(java.lang.String s)
      Description copied from interface: XMLObject
      Handles a string within an XML element.
      Specified by:
      handleXMLString in interface XMLObject
      Parameters:
      s - String to handle
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file, as XMLType.Normal. The default format of XMLFormat.Ascii will be used. The basic contract for this method is that it should not write a newline character at its start or end.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      options - XMLOutputOptions defining the write parameters
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • getShortXML

      public java.lang.String getShortXML​(int tab)
      Description copied from interface: XMLObject
      Returns a short XML representation of this object.
      Specified by:
      getShortXML in interface XMLObject
      Returns: