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 /** 016 * @param r 017 * The red component. 018 * @param g 019 * The green component. 020 * @param b 021 * The blue component. 022 * @param a 023 * The alpha component. 024 * @return An alteration of {@code (r,g,b,a)}. 025 */ 026 T alter(float r, float g, float b, float a); 027 028}