package com.android.gallery3d.filtershow.filters; import android.util.Log; import com.android.gallery3d.R; import com.android.gallery3d.filtershow.ui.Spline; /** * TODO: Insert description here. (generated by hoford) */ public class FilterCurvesRepresentation extends FilterRepresentation { private static final String LOGTAG = "FilterCurvesRepresentation"; private Spline[] mSplines = new Spline[4]; public FilterCurvesRepresentation() { super("Curves"); setSerializationName("CURVES"); setFilterClass(ImageFilterCurves.class); setTextId(R.string.curvesRGB); setOverlayId(R.drawable.filtershow_button_colors_curve); setEditorId(R.id.imageCurves); setShowParameterValue(false); setSupportsPartialRendering(true); reset(); } @Override public FilterRepresentation clone() throws CloneNotSupportedException { FilterCurvesRepresentation rep = new FilterCurvesRepresentation(); rep.useParametersFrom(this); return rep; } @Override public void useParametersFrom(FilterRepresentation a) { if (!(a instanceof FilterCurvesRepresentation)) { Log.v(LOGTAG, "cannot use parameters from " + a); return; } FilterCurvesRepresentation representation = (FilterCurvesRepresentation) a; Spline[] spline = new Spline[4]; for (int i = 0; i < spline.length; i++) { Spline sp = representation.mSplines[i]; if (sp != null) { spline[i] = new Spline(sp); } else { spline[i] = new Spline(); } } mSplines = spline; } public boolean isNil() { for (int i = 0; i < 4; i++) { if (getSpline(i) != null && !getSpline(i).isOriginal()) { return false; } } return true; } public void reset() { Spline spline = new Spline(); spline.addPoint(0.0f, 1.0f); spline.addPoint(1.0f, 0.0f); for (int i = 0; i < 4; i++) { mSplines[i] = new Spline(spline); } } public void setSpline(int splineIndex, Spline s) { mSplines[splineIndex] = s; } public Spline getSpline(int splineIndex) { return mSplines[splineIndex]; } }