001/** 002 * Copyright (c) 2011, The University of Southampton and the individual contributors. 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without modification, 006 * are permitted provided that the following conditions are met: 007 * 008 * * Redistributions of source code must retain the above copyright notice, 009 * this list of conditions and the following disclaimer. 010 * 011 * * Redistributions in binary form must reproduce the above copyright notice, 012 * this list of conditions and the following disclaimer in the documentation 013 * and/or other materials provided with the distribution. 014 * 015 * * Neither the name of the University of Southampton nor the names of its 016 * contributors may be used to endorse or promote products derived from this 017 * software without specific prior written permission. 018 * 019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 022 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 023 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 026 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 028 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 029 */ 030package org.openimaj.math.geometry.shape.util.polygon; 031 032/** 033 * Edge intersection classes 034 */ 035public class VertexType 036{ 037 /** Empty non-intersection */ 038 public static final int NUL = 0; 039 040 /** External maximum */ 041 public static final int EMX = 1; 042 043 /** External left intermediate */ 044 public static final int ELI = 2; 045 046 /** Top edge */ 047 public static final int TED = 3; 048 049 /** External right intermediate */ 050 public static final int ERI = 4; 051 052 /** Right edge */ 053 public static final int RED = 5; 054 055 /** Internal maximum and minimum */ 056 public static final int IMM = 6; 057 058 /** Internal minimum */ 059 public static final int IMN = 7; 060 061 /** External minimum */ 062 public static final int EMN = 8; 063 064 /** External maximum and minimum */ 065 public static final int EMM = 9; 066 067 /** Left edge */ 068 public static final int LED = 10; 069 070 /** Internal left intermediate */ 071 public static final int ILI = 11; 072 073 /** Bottom edge */ 074 public static final int BED = 12; 075 076 /** Internal right intermediate */ 077 public static final int IRI = 13; 078 079 /** Internal maximum */ 080 public static final int IMX = 14; 081 082 /** Full non-intersection */ 083 public static final int FUL = 15; 084 085 /** 086 * @param tr 087 * @param tl 088 * @param br 089 * @param bl 090 * @return type 091 */ 092 public static int getType( int tr, int tl, int br, int bl ) 093 { 094 return tr + (tl << 1) + (br << 2) + (bl << 3); 095 } 096}