package prefuse.action.animate;
import prefuse.action.Action;
/**
* Animator that toggles rendering quality to allow for smooth animations but
* high quality rendering of still images. At the beginning of an animation,
* high quality rendering (if enabled) is disabled, and at the end the original
* setting is restored.
*
* @author <a href="http://jheer.org">jeffrey heer</a>
*/
public class QualityControlAnimator extends Action {
/**
* @see prefuse.action.Action#run(double)
*/
public void run(double frac) {
if ( m_vis == null ) return;
if ( frac == 0.0 || frac == 1.0 ) {
boolean quality = frac >= 1.0;
for ( int i=0; i<m_vis.getDisplayCount(); ++i ) {
m_vis.getDisplay(i).setHighQuality(quality);
}
qualityValue(quality);
}
}
/**
* Callback procedure that subclasses can override to execute
* custom quality control measures.
* @param quality true if high quality is desired, false otherwise
*/
protected void qualityValue(boolean quality) {
// do nothing
}
} // end of class QualityControlAnimator