/* * Copyright (C) 2014 Alfons Wirtz * website www.freerouting.net * * 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 3 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 at <http://www.gnu.org/licenses/> * for more details. * * ConvexShape2.java * * Created on 15. November 2002, 08:44 */ package geometry.planar; /** * A shape is defined as convex, if for each line segment with both endpoints * contained in the shape the whole segment is contained completely in the shape. * * @author Alfons Wirtz */ public interface ConvexShape extends Shape { /** * Calculates the offset shape by p_distance. * If p_distance > 0, the shape will be enlarged, else the result * shape will be smaller. */ ConvexShape offset(double p_distance); /** * Shrinks the shape by p_offset. * The result shape will not be empty. */ ConvexShape shrink(double p_offset); /** * Returns the maximum diameter of the shape. */ double max_width(); /** * Returns the minimum diameter of the shape. */ double min_width(); }