Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.batik.ext.awt.geom
Class Cubic  view Cubic download Cubic.java

java.lang.Object
  extended byorg.apache.batik.ext.awt.geom.AbstractSegment
      extended byorg.apache.batik.ext.awt.geom.Cubic
All Implemented Interfaces:
java.lang.Cloneable, Segment

public class Cubic
extends AbstractSegment

A class representing a cubic path segment.

Version:
$Id: Cubic.java,v 1.3 2005/03/27 08:58:32 cam Exp $

Nested Class Summary
 
Nested classes inherited from class org.apache.batik.ext.awt.geom.Segment
Segment.SplitResults
 
Field Summary
private static int count
           
private static int countExp
           
 java.awt.geom.Point2D.Double p1
           
 java.awt.geom.Point2D.Double p2
           
 java.awt.geom.Point2D.Double p3
           
 java.awt.geom.Point2D.Double p4
           
 
Fields inherited from class org.apache.batik.ext.awt.geom.AbstractSegment
eps, tol
 
Constructor Summary
Cubic()
           
Cubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
           
Cubic(java.awt.geom.Point2D.Double p1, java.awt.geom.Point2D.Double p2, java.awt.geom.Point2D.Double p3, java.awt.geom.Point2D.Double p4)
           
 
Method Summary
 java.lang.Object clone()
          This method may be called to create a new copy of the Object.
 java.awt.geom.Point2D.Double eval(double t)
           
 java.awt.geom.Point2D.Double evalDt(double t)
           
protected  int findRoots(double y, double[] roots)
           
 java.awt.geom.Rectangle2D getBounds2D()
           
 double getLength()
           
 double getLength(double maxErr)
           
private  void getMinMax(double p1, double p2, double p3, double p4, double[] minMax)
           
 Segment getSegment(double t0, double t1)
           
 double maxX()
           
 double maxY()
           
 double minX()
           
 double minY()
           
 Segment reverse()
           
 void subdivide(Cubic c0, Cubic c1)
          Subdivides this Cubic curve into two curves at t = 0.5.
 void subdivide(double t, Cubic c0, Cubic c1)
          Subdivides this Cubic curve into two curves at given t.
 void subdivide(double t, Segment s0, Segment s1)
          Subdivides this Cubic curve into two curves at given t.
 void subdivide(Segment s0, Segment s1)
          Subdivides this Cubic curve into two curves at t = 0.5.
protected  double subLength(double leftLegLen, double rightLegLen, double maxErr)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 
Methods inherited from class org.apache.batik.ext.awt.geom.AbstractSegment
matchSign, solveCubic, solveLine, solveQuad, split, splitAfter, splitBefore
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

p1

public java.awt.geom.Point2D.Double p1

p2

public java.awt.geom.Point2D.Double p2

p3

public java.awt.geom.Point2D.Double p3

p4

public java.awt.geom.Point2D.Double p4

count

private static int count

countExp

private static int countExp
Constructor Detail

Cubic

public Cubic()

Cubic

public Cubic(double x1,
             double y1,
             double x2,
             double y2,
             double x3,
             double y3,
             double x4,
             double y4)

Cubic

public Cubic(java.awt.geom.Point2D.Double p1,
             java.awt.geom.Point2D.Double p2,
             java.awt.geom.Point2D.Double p3,
             java.awt.geom.Point2D.Double p4)
Method Detail

clone

public java.lang.Object clone()
Description copied from class: java.lang.Object
This method may be called to create a new copy of the Object. The typical behavior is as follows:
  • o == o.clone() is false
  • o.getClass() == o.clone().getClass() is true
  • o.equals(o) is true

However, these are not strict requirements, and may be violated if necessary. Of the three requirements, the last is the most commonly violated, particularly if the subclass does not override Object.equals(Object)>Object.equals(Object) 55 .

If the Object you call clone() on does not implement java.lang.Cloneable (which is a placeholder interface), then a CloneNotSupportedException is thrown. Notice that Object does not implement Cloneable; this method exists as a convenience for subclasses that do.

Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.

All array types implement Cloneable, and override this method as follows (it should never fail):

 public Object clone()
 {
   try
     {
       super.clone();
     }
   catch (CloneNotSupportedException e)
     {
       throw new InternalError(e.getMessage());
     }
 }
 


reverse

public Segment reverse()

getMinMax

private void getMinMax(double p1,
                       double p2,
                       double p3,
                       double p4,
                       double[] minMax)

minX

public double minX()

maxX

public double maxX()

minY

public double minY()

maxY

public double maxY()

getBounds2D

public java.awt.geom.Rectangle2D getBounds2D()

findRoots

protected int findRoots(double y,
                        double[] roots)
Specified by:
findRoots in class AbstractSegment

evalDt

public java.awt.geom.Point2D.Double evalDt(double t)

eval

public java.awt.geom.Point2D.Double eval(double t)

subdivide

public void subdivide(Segment s0,
                      Segment s1)
Subdivides this Cubic curve into two curves at t = 0.5. can be done with getSegment but this is more efficent.


subdivide

public void subdivide(double t,
                      Segment s0,
                      Segment s1)
Subdivides this Cubic curve into two curves at given t.


subdivide

public void subdivide(Cubic c0,
                      Cubic c1)
Subdivides this Cubic curve into two curves at t = 0.5. can be done with getSegment but this is more efficent.


subdivide

public void subdivide(double t,
                      Cubic c0,
                      Cubic c1)
Subdivides this Cubic curve into two curves at given t.


getSegment

public Segment getSegment(double t0,
                          double t1)

subLength

protected double subLength(double leftLegLen,
                           double rightLegLen,
                           double maxErr)

getLength

public double getLength()

getLength

public double getLength(double maxErr)

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).