001package squidpony; 002 003/** 004 * A filter is a function on colors. It is usually used in {@link IColorCenter} 005 * to tint all colors. 006 * 007 * @author Tommy Ettinger 008 * @author smelC 009 * @param <T> 010 * The type of colors that this filter outputs. 011 * @see IColorCenter 012 */ 013public interface IFilter<T> { 014 /** 015 * @param r 016 * The red component. 017 * @param g 018 * The green component. 019 * @param b 020 * The blue component. 021 * @param a 022 * The alpha component. 023 * @return An alteration of {@code (r,g,b,a)}. 024 */ 025 T alter(float r, float g, float b, float a); 026}