|
j3d.org Code | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.j3d.util.interpolator.Interpolator org.j3d.util.interpolator.NormalInterpolator
public class NormalInterpolator
An interpolator that works with sets of normals.
The interpolation routine is a constant-angle interpolation between each of the normals in the pairs of normal sets. The interpolator may take arbitrarily spaced keyframes and compute correct values. Based on the CoordinateInterpolator.java by Justin Couch.
The interpolation implementation is based on the following: 0 <= f <= 1, N1, N2 are normalized input normals, A is angle between N1 and N2 == acos(N1xN2), N3 = (sin((1-f)*A)*N1 + sin(f*A)*N2 Normalized result is N3/(|N3|)
Field Summary |
---|
Fields inherited from class org.j3d.util.interpolator.Interpolator |
---|
allocatedSize, ARRAY_INCREMENT, currentSize, DEFAULT_SIZE, interpolationType, keys, LINEAR, STEP |
Constructor Summary | |
---|---|
NormalInterpolator()
Create a new linear interpolator instance with the default size for the number of key values. |
|
NormalInterpolator(int size)
Create an linear interpolator with the given basic size. |
|
NormalInterpolator(int size,
int type)
Create a interpolator with the given basic size using the interpolation type. |
Method Summary | |
---|---|
void |
addKeyFrame(float key,
float[] normals)
Add a key frame set of values at the given key point. |
float[] |
floatValue(float key)
Get the interpolated normal set for the given key value. |
java.lang.String |
toString()
|
Methods inherited from class org.j3d.util.interpolator.Interpolator |
---|
clear, findKeyIndex |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public NormalInterpolator()
public NormalInterpolator(int size)
size
- The starting number of items in interpolatorpublic NormalInterpolator(int size, int type)
size
- The starting number of items in interpolatortype
- The type of interpolation scheme to useMethod Detail |
---|
public void addKeyFrame(float key, float[] normals)
key
- The value of the key to usenormals
- The normals at this keypublic float[] floatValue(float key)
key
- The key value to get the position for
public java.lang.String toString()
toString
in class java.lang.Object
|
j3d.org Code | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |