/* * Scriptographer * * This file is part of Scriptographer, a Scripting Plugin for Adobe Illustrator * http://scriptographer.org/ * * Copyright (c) 2002-2010, Juerg Lehni * http://scratchdisk.com/ * * All rights reserved. See LICENSE file for details. * * File created on 21.01.2005. */ package com.scriptographer.ai; import com.scratchdisk.list.ExtendedList; /** * @author lehni */ public final class Pathfinder { /** * Don't let anyone instantiate this class. */ private Pathfinder() { } private static final float DEFAULT_PRECISION = 10f; private static final boolean DEFAULT_REMOVE_POINTS = false; private static final boolean DEFAULT_EXTRACT_UNPAINTED = false; // Unite public static native Item unite(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item unite(Object[] items, float precision, boolean removePoints) { return unite(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item unite(Object[] items, float precision) { return unite(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item unite(Object[] items) { return unite(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item unite(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return unite(items.toArray(), precision, removePoints, extractUnpainted); } public static Item unite(ExtendedList items, float precision, boolean removePoints) { return unite(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item unite(ExtendedList items, float precision) { return unite(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item unite(ExtendedList items) { return unite(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // intersect public static native Item intersect(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item intersect(Object[] items, float precision, boolean removePoints) { return intersect(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item intersect(Object[] items, float precision) { return intersect(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item intersect(Object[] items) { return intersect(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item intersect(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return intersect(items.toArray(), precision, removePoints, extractUnpainted); } public static Item intersect(ExtendedList items, float precision, boolean removePoints) { return intersect(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item intersect(ExtendedList items, float precision) { return intersect(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item intersect(ExtendedList items) { return intersect(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // exclude public static native Item exclude(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item exclude(Object[] items, float precision, boolean removePoints) { return exclude(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item exclude(Object[] items, float precision) { return exclude(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item exclude(Object[] items) { return exclude(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item exclude(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return exclude(items.toArray(), precision, removePoints, extractUnpainted); } public static Item exclude(ExtendedList items, float precision, boolean removePoints) { return exclude(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item exclude(ExtendedList items, float precision) { return exclude(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item exclude(ExtendedList items) { return exclude(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // backMinusFront public static native Item backMinusFront(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item backMinusFront(Object[] items, float precision, boolean removePoints) { return backMinusFront(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item backMinusFront(Object[] items, float precision) { return backMinusFront(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item backMinusFront(Object[] items) { return backMinusFront(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item backMinusFront(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return backMinusFront(items.toArray(), precision, removePoints, extractUnpainted); } public static Item backMinusFront(ExtendedList items, float precision, boolean removePoints) { return backMinusFront(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item backMinusFront(ExtendedList items, float precision) { return backMinusFront(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item backMinusFront(ExtendedList items) { return backMinusFront(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // frontMinusBack public static native Item frontMinusBack(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item frontMinusBack(Object[] items, float precision, boolean removePoints) { return frontMinusBack(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item frontMinusBack(Object[] items, float precision) { return frontMinusBack(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item frontMinusBack(Object[] items) { return frontMinusBack(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item frontMinusBack(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return frontMinusBack(items.toArray(), precision, removePoints, extractUnpainted); } public static Item frontMinusBack(ExtendedList items, float precision, boolean removePoints) { return frontMinusBack(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item frontMinusBack(ExtendedList items, float precision) { return frontMinusBack(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item frontMinusBack(ExtendedList items) { return frontMinusBack(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // divide public static native Item divide(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item divide(Object[] items, float precision, boolean removePoints) { return divide(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item divide(Object[] items, float precision) { return divide(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item divide(Object[] items) { return divide(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item divide(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return divide(items.toArray(), precision, removePoints, extractUnpainted); } public static Item divide(ExtendedList items, float precision, boolean removePoints) { return divide(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item divide(ExtendedList items, float precision) { return divide(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item divide(ExtendedList items) { return divide(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // outline public static native Item outline(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item outline(Object[] items, float precision, boolean removePoints) { return outline(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item outline(Object[] items, float precision) { return outline(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item outline(Object[] items) { return outline(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item outline(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return outline(items.toArray(), precision, removePoints, extractUnpainted); } public static Item outline(ExtendedList items, float precision, boolean removePoints) { return outline(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item outline(ExtendedList items, float precision) { return outline(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item outline(ExtendedList items) { return outline(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // trim public static native Item trim(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item trim(Object[] items, float precision, boolean removePoints) { return trim(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item trim(Object[] items, float precision) { return trim(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item trim(Object[] items) { return trim(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item trim(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return trim(items.toArray(), precision, removePoints, extractUnpainted); } public static Item trim(ExtendedList items, float precision, boolean removePoints) { return trim(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item trim(ExtendedList items, float precision) { return trim(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item trim(ExtendedList items) { return trim(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // merge public static native Item merge(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item merge(Object[] items, float precision, boolean removePoints) { return merge(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item merge(Object[] items, float precision) { return merge(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item merge(Object[] items) { return merge(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item merge(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return merge(items.toArray(), precision, removePoints, extractUnpainted); } public static Item merge(ExtendedList items, float precision, boolean removePoints) { return merge(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item merge(ExtendedList items, float precision) { return merge(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item merge(ExtendedList items) { return merge(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } // crop public static native Item crop(Object[] items, float precision, boolean removePoints, boolean extractUnpainted); public static Item crop(Object[] items, float precision, boolean removePoints) { return crop(items, precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item crop(Object[] items, float precision) { return crop(items, precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item crop(Object[] items) { return crop(items, DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item crop(ExtendedList items, float precision, boolean removePoints, boolean extractUnpainted) { return crop(items.toArray(), precision, removePoints, extractUnpainted); } public static Item crop(ExtendedList items, float precision, boolean removePoints) { return crop(items.toArray(), precision, removePoints, DEFAULT_EXTRACT_UNPAINTED); } public static Item crop(ExtendedList items, float precision) { return crop(items.toArray(), precision, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } public static Item crop(ExtendedList items) { return crop(items.toArray(), DEFAULT_PRECISION, DEFAULT_REMOVE_POINTS, DEFAULT_EXTRACT_UNPAINTED); } }