VolumeJ
Class VJInterpolator

java.lang.Object
  |
  +--VolumeJ.VJInterpolator
Direct Known Subclasses:
VJNearestNeighbor, VJSplineInterpolator, VJTrilinear

public abstract class VJInterpolator
extends java.lang.Object

This class is the abstract class for all volume interpolators and defines the methods for each of these classes.

See Also:
Volume, VJGradient, Copyright (c) 1999-2002, Michael Abramoff. All rights reserved.

Constructor Summary
VJInterpolator()
           
 
Method Summary
abstract  VJGradient gradient(Volume v, VJVoxelLoc vl)
          Interpolate the gradient of v at location vl.
abstract  boolean isValid(VJVoxelLoc vl, Volume v)
          Does vl fall within the bounds of volume for a specific interpolation kernel?
abstract  boolean isValidGradient(VJCell c, Volume v)
          Does cell c fall within the bounds of a volume for nearest neighbor gradient interpolation?
abstract  boolean isValidGradient(VJVoxelLoc vl, Volume v)
          Does vl fall within the bounds of volume for nearest neighbor gradient interpolation?
abstract  java.lang.String toString()
           
abstract  VJValue value(VJValue voxel, Volume v, VJVoxelLoc vl)
          Interpolate the value of v at location vl.
 VJValueHSB valueHS(VJValueHSB hsb, VolumeRGB v, float threshold, VJVoxelLoc vl)
          This method should not be here, but where: it is a special HSB vector interpolation for RGB volumes.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VJInterpolator

public VJInterpolator()
Method Detail

isValid

public abstract boolean isValid(VJVoxelLoc vl,
                                Volume v)
Does vl fall within the bounds of volume for a specific interpolation kernel?
Parameters:
vl - a VJVoxelLoc for which you want to know whether it falls inside the bounds, taking account of support.
v - the volume to be interpolated.
Returns:
boolean whether or not vl falls within the bounds.

isValidGradient

public abstract boolean isValidGradient(VJVoxelLoc vl,
                                        Volume v)
Does vl fall within the bounds of volume for nearest neighbor gradient interpolation?
Parameters:
vl - a VJVoxelLoc for which you want to know whether it falls inside the bounds, taking account of support for the gradient kernel.
v - the volume to be interpolated.
Returns:
boolean whether or not vl falls within the bounds.

isValidGradient

public abstract boolean isValidGradient(VJCell c,
                                        Volume v)
Does cell c fall within the bounds of a volume for nearest neighbor gradient interpolation?
Parameters:
c - a VJCell for which you want to know whether it falls inside the bounds, taking account of support for the gradient kernel.
v - the volume to be interpolated.
boolean - whether or not c falls within the bounds.

value

public abstract VJValue value(VJValue voxel,
                              Volume v,
                              VJVoxelLoc vl)
Interpolate the value of v at location vl. voxel must be instantiated as a (sub)class of VJValue.
Parameters:
voxel - a VJValue which will contain the interpolated voxel value on exit.
v - a volume
vl - a location in the volume.
Returns:
voxel, which contains the value in v at vl.

gradient

public abstract VJGradient gradient(Volume v,
                                    VJVoxelLoc vl)
Interpolate the gradient of v at location vl.
Parameters:
v - a volume
vl - a location in the volume.
Returns:
a VJGradient which contains the gradient in v at vl.

toString

public abstract java.lang.String toString()
Overrides:
toString in class java.lang.Object

valueHS

public VJValueHSB valueHS(VJValueHSB hsb,
                          VolumeRGB v,
                          float threshold,
                          VJVoxelLoc vl)
This method should not be here, but where: it is a special HSB vector interpolation for RGB volumes. It is not really interpolation type dependent, but it is a type of interpolation. Get the HSB voxel value (hue and saturation) with a brightness closest to threshold near vl.
Parameters:
hsb - a VJValueHSB to which will be added the hue and saturation.
v - the volume in which to interpolate.
threshold - the desired surface brightness value.
vl - the location around which to look for the surface voxel.