All Packages  This Package  Class Hierarchy  Class Search  Index

Class acg.stuttgart.rich.spline.FastCRSplineLoop3D
java.lang.Object
   |
   +----acg.stuttgart.rich.spline.Spline3D
           |
           +----acg.stuttgart.rich.spline.CatmullRomSpline3D
                   |
                   +----acg.stuttgart.rich.spline.FastCRSpline3D
                           |
                           +----acg.stuttgart.rich.spline.FastCRSplineLoop3D

  Summary

public class  FastCRSplineLoop3D
     extends acg.stuttgart.rich.spline.FastCRSpline3D
{
          // Constructors 2
     public FastCRSplineLoop3D();
     public FastCRSplineLoop3D(float);

          // Methods 6
     protected void calculateTangents();
     public Vector3D evaluate(float) throws SplineException;
     public void evaluate(float, Vector3D) throws SplineException;
     protected void updateHermiteTree();
     public void updateKnots(Vector3D[]) throws SplineException;
     public void updateKnots(Vector3D[], int) throws SplineException;
}

The FastCRSplineLoop3D class is a faster version of the CatmullRomSPlineLoop3D class.




  Constructors

· FastCRSplineLoop3D

Summary  |  Top

   public FastCRSplineLoop3D(float smoothness) 

The constructor takes a "smoothness" parameter, which if not specified defaults to 0.33.



· FastCRSplineLoop3D

Summary  |  Top
   public FastCRSplineLoop3D() 


  Methods

· updateKnots

Summary  |  Top
   public void updateKnots(Vector3D[] newKnots)  throws SplineException

The updateKnots method replaces the current spline knots with an array of new knots. The length of the array must be the same as the number of knots.

Overrides:
updateKnots in class CatmullRomSpline3D


· updateKnots

Summary  |  Top
   public void updateKnots(Vector3D[] newKnots, 
                           int offset)  throws SplineException

The updateKnots method replaces the current spline knots with an array of new knots. This version takes as a prameter an offset into an array. If the offset plus the current number of knots is greater than the length of the array, an exception is signaled.

Overrides:
updateKnots in class CatmullRomSpline3D


· evaluate

Summary  |  Top
   public Vector3D evaluate(float s)  throws SplineException

For loop splines, we want the evaluation parameter to "wrap around" the interval from zero to one. This version of evaluate "wraps" s before calling evaluate in the parent class.

Overrides:
evaluate in class CatmullRomSpline3D


· evaluate

Summary  |  Top
   public void evaluate(float s, 
                        Vector3D val)  throws SplineException

Wrap and evaluate in-place.

Overrides:
evaluate in class FastCRSpline3D


· updateHermiteTree

Summary  |  Top
   protected void updateHermiteTree() 

This method constructs a tree of hermite spline nodes, allowing rapid evaluation of the spline (log(n) comparisons).

Overrides:
updateHermiteTree in class CatmullRomSpline3D


· calculateTangents

Summary  |  Top
   protected void calculateTangents() 

The calculateTangents method calculates tangents and spline length for updateHermiteTree and updateKnots. This version adds a knot to close the spline loop and calculates the beginning and ending tangents accordingly.

Overrides:
calculateTangents in class CatmullRomSpline3D


All Packages  This Package  Class Hierarchy  Class Search  Index
Freshly brewed Java API Documentation automatically generated with polardoc Version 1.0.7