% Aufgabe 2.8.6: zeichnet verschiedene 3D-Körper
function GeKoerper()
  typ = input( 'Körper-Typ (´p´=Pyramide, ´q´=Quader): ', 's' );
  
  bd = GeBody();

  % Unterschiedliche Geometrien je nach Körpertyp:
  switch( typ )
    case 'p'
      laenge = input( 'Seitenlänge der Pyramide: ' );
      hoehe  = input( 'Höhe der Pyramide: ' );
      % Array der 5 Eckpunkte mit den Koordinaten x,y,z
      bd = bd.addPt( 0,0,0 );
      bd = bd.addPt( laenge,0,0 );
      bd = bd.addPt( laenge,laenge,0 );
      bd = bd.addPt( 0,laenge,0 );
      bd = bd.addPt( laenge/2,laenge/2,hoehe );
      % Array der 8 Körper-Linien mit den Eckpunktnummern p1, p2
      bd = bd.addLn( 1,2 );
      bd = bd.addLn( 2,3 );
      bd = bd.addLn( 3,4 );
      bd = bd.addLn( 4,1 );
      bd = bd.addLn( 1,5 );
      bd = bd.addLn( 2,5 );
      bd = bd.addLn( 3,5 );
      bd = bd.addLn( 4,5 );

    case 'q'
      laenge = input( 'Seitenlänge des Quaders: ' );
      hoehe  = input( 'Höhe des Quaders: ' );      
      % Array der 8 Eckpunkte mit den Koordinaten x,y,z
      bd = bd.addPt( 0,0,0 );
      bd = bd.addPt( laenge,0,0 );
      bd = bd.addPt( laenge,laenge,0 );
      bd = bd.addPt( 0,laenge,0 );
      bd = bd.addPt( 0,0,hoehe );
      bd = bd.addPt( laenge,0,hoehe );
      bd = bd.addPt( laenge,laenge,hoehe );
      bd = bd.addPt( 0,laenge,hoehe );
      % Array der 12 Körper-Linien mit den Eckpunktnummern p1, p2
      bd = bd.addLn( 1,2 );
      bd = bd.addLn( 2,3 );
      bd = bd.addLn( 3,4 );
      bd = bd.addLn( 4,1 );
      bd = bd.addLn( 5,6 );
      bd = bd.addLn( 6,7 );
      bd = bd.addLn( 7,8 );
      bd = bd.addLn( 8,5 );
      bd = bd.addLn( 1,5 );
      bd = bd.addLn( 2,6 );
      bd = bd.addLn( 3,7 );
      bd = bd.addLn( 4,8 );

    otherwise
      fprintf( 'Unbekannter Typ! \n' );
      return; 
  end

  % Aufruf der Zeichen-Funktion: 
  bd.drawLines();
end
