com.graphbuilder.curve
Class CardinalSpline

java.lang.Object
  extended bycom.graphbuilder.curve.Curve
      extended bycom.graphbuilder.curve.ParametricCurve
          extended bycom.graphbuilder.curve.CardinalSpline

public class CardinalSpline
extends ParametricCurve

The Cardinal-spline passes through the points in the control-path specified by the group-iterator. However, the curve does not pass through the first or the last control-point, it begins at the second control-point and ends at the second last control-point.

There is a single parameter, alpha, that gives some control over the shape of the curve. When the value of alpha is 0.5 the curve becomes the CatmullRomSpline. Figure 1 shows an example of a CardinalSpline.

See Also:
CatmullRomSpline

Field Summary
 
Fields inherited from class com.graphbuilder.curve.Curve
connect, cp, gi
 
Constructor Summary
CardinalSpline(ControlPath cp, GroupIterator gi)
           
 
Method Summary
 void appendTo(MultiPath mp)
          The requirements for this curve are the group-iterator must be in-range and have a group size of at least 4.
protected  void eval(double[] p)
          The eval method evaluates a point on a curve given a parametric value "t".
 double getAlpha()
          Returns the value of alpha.
 int getSampleLimit()
          Returns a value of 1.
 void setAlpha(double a)
          Sets the value of alpha.
 
Methods inherited from class com.graphbuilder.curve.Curve
getConnect, getControlPath, getGroupIterator, resetMemory, setConnect, setControlPath, setGroupIterator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CardinalSpline

public CardinalSpline(ControlPath cp,
                      GroupIterator gi)
Method Detail

eval

protected void eval(double[] p)
Description copied from class: ParametricCurve
The eval method evaluates a point on a curve given a parametric value "t". The parametric value "t" is stored in the last index location of the specified double array. This value should not be changed. The dimension of the point to evaluate is p.length - 1. The result of the evaluation is placed in index locations 0 .. p.length - 2 (inclusive). The eval method should remain protected except for those curves that do no need any preparation to be done in the appendTo method.

Specified by:
eval in class ParametricCurve

getAlpha

public double getAlpha()
Returns the value of alpha. The default value is 0.5.

See Also:
setAlpha(double)

setAlpha

public void setAlpha(double a)
Sets the value of alpha.

See Also:
getAlpha()

getSampleLimit

public int getSampleLimit()
Returns a value of 1.

Specified by:
getSampleLimit in class ParametricCurve

appendTo

public void appendTo(MultiPath mp)
The requirements for this curve are the group-iterator must be in-range and have a group size of at least 4. If these requirements are not met then this method returns quietly.

Specified by:
appendTo in class Curve
See Also:
MultiPath, BinaryCurveApproximationAlgorithm