1 /* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.gallery3d.filtershow.filters; 18 19 import android.graphics.RectF; 20 21 import com.android.gallery3d.R; 22 import com.android.gallery3d.filtershow.editors.EditorRedEye; 23 24 import java.util.Vector; 25 26 public class FilterRedEyeRepresentation extends FilterPointRepresentation { 27 private static final String LOGTAG = "FilterRedEyeRepresentation"; 28 FilterRedEyeRepresentation()29 public FilterRedEyeRepresentation() { 30 super("RedEye",R.string.redeye,EditorRedEye.ID); 31 setSerializationName("REDEYE"); 32 setFilterClass(ImageFilterRedEye.class); 33 setOverlayId(R.drawable.photoeditor_effect_redeye); 34 setOverlayOnly(true); 35 } 36 37 @Override copy()38 public FilterRepresentation copy() { 39 FilterRedEyeRepresentation representation = new FilterRedEyeRepresentation(); 40 copyAllParameters(representation); 41 return representation; 42 } 43 44 @Override copyAllParameters(FilterRepresentation representation)45 protected void copyAllParameters(FilterRepresentation representation) { 46 super.copyAllParameters(representation); 47 representation.useParametersFrom(this); 48 } 49 addRect(RectF rect, RectF bounds)50 public void addRect(RectF rect, RectF bounds) { 51 Vector<RedEyeCandidate> intersects = new Vector<RedEyeCandidate>(); 52 for (int i = 0; i < getCandidates().size(); i++) { 53 RedEyeCandidate r = (RedEyeCandidate) getCandidate(i); 54 if (r.intersect(rect)) { 55 intersects.add(r); 56 } 57 } 58 for (int i = 0; i < intersects.size(); i++) { 59 RedEyeCandidate r = intersects.elementAt(i); 60 rect.union(r.mRect); 61 bounds.union(r.mBounds); 62 removeCandidate(r); 63 } 64 addCandidate(new RedEyeCandidate(rect, bounds)); 65 } 66 67 } 68