Update of /cvsroot/jrman/drafts/src/org/jrman/util In directory sc8-pr-cvs1:/tmp/cvs-serv7530/src/org/jrman/util Added Files: TriangleSamplesFilter.java SincSamplesFilter.java CatmullRomSamplesFilter.java BoxSamplesFilter.java Log Message: Implemented PixelFilters. --- NEW FILE: TriangleSamplesFilter.java --- /* TriangleSamplesFilter.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.util; public class TriangleSamplesFilter extends SamplesFilter { protected float filterFunc(float x, float y, float xWidth, float yWidth) { return ((1f - Math.abs(x)) / (xWidth * .5f)) * ((1f - Math.abs(y)) / (yWidth * .5f)); } } --- NEW FILE: SincSamplesFilter.java --- /* SincSamplesFilter.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.util; public class SincSamplesFilter extends SamplesFilter { protected float filterFunc(float x, float y, float xWidth, float yWidth) { float s; float t; if (x > -0.001f && x < 0.001f) s = 1f; else s = (float) Math.sin(x) / x; if (y > -0.001f && y < 0.001f) t = 1f; else t = (float) Math.sin(y) / y; return s * t; } } --- NEW FILE: CatmullRomSamplesFilter.java --- /* CatmullRomSamplesFilter.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.util; public class CatmullRomSamplesFilter extends SamplesFilter { protected float filterFunc(float x, float y, float xWidth, float yWidth) { float r2 = (x * x + y * y); float r = (float) Math.sqrt(r2); return (r >= 2f) ? 0f : (r < 1f) ? (3f * r * r2 - 5f * r2 + 2f) : (-r * r2 + 5f * r2 - 8f * r + 4); } } --- NEW FILE: BoxSamplesFilter.java --- /* BoxSamplesFilter.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.util; public class BoxSamplesFilter extends SamplesFilter { protected float filterFunc(float x, float y, float xWidth, float yWidth) { return 1f; } } |