//Autor:        Philipp Muigg
//MatrikelNr:   0125958
//e-mail:       p.muigg@kabsi.at
//Beispielname: Konvneck (konvexes Vieleck)
//BeispielNr: 3254


//dieses Programm liest die Eckpunkte eines Vielecks ein und gibt gibt aus,
//ob das Vieleck Konvex oder Konkav ist oder ob sich die Kanten schneiden.

import eprog.*;
import TPolygon;

public class Konvneck extends EprogIO
{

  public static void main(String[] args)
  {

//informationen zum TArrayAppendObj in der zugehörigen .java datei
//(verhält sich im endeffekt ähnlich wie eine linked list...)

    TArrayAppendObj eingabe=new TArrayAppendObj(new String[50]);
    String eingabeBuff=readWord();

//Einlesen von werten bis ein "=" die Eingabe abbricht

    while (!eingabeBuff.equals("="))
    {

        eingabe.appendObject(eingabeBuff);
        eingabeBuff=readWord();
    }

//informationen zu dieser funktion in TArrayAppendObj.java
    //eingabe.trimArray();
    String[] uebergabeArray= eingabe.toTrimmedStringArray();


    TPolygon mypoly= new TPolygon(eingabe.toTrimmedStringArray());

/*TKoo2d[] kootest=new TKoo2d[6];
kootest[0]=new TKoo2d(0,0);
kootest[1]=new TKoo2d(2,-1);
kootest[2]=new TKoo2d(3,-1);
kootest[3]=new TKoo2d(4,1);
kootest[4]=new TKoo2d(4,2);
kootest[5]=new TKoo2d(0,2);
TPolygon mypoly= new TPolygon(kootest, false);
*/

    int polyStat= mypoly.getPolystat();

//wenn der polygon ungültig ist seine punktzahl größer 15 ist oder seine punkte ausserhalb der vorgegebenen
//größe sind wird falsche eingabe ausgegeben.

    if  (((polyStat&TPolygon.POLYSTAT_INVALID)!=0)||
        (mypoly.getPunktZahl()+1>15)||(!mypoly.sindKoosIn(-100,100)))
      println("FALSCHE EINGABE");
    else

//mehr zum Rückgabewert von getPolystat in TPolygon.java

      if ((polyStat&TPolygon.POLYSTAT_SCHNEIDET)!=0)
        println("SCHNEIDET");
      else if ((polyStat&TPolygon.POLYSTAT_KONKAV)!=0)
        println("KONKAV");
      else
        println("KONVEX");

  }
}