ch.beattl.projektor
Class Polyeder

java.lang.Object
  extended by ch.beattl.projektor.Polyeder

public class Polyeder
extends Object

Eine Klasse zur Speicherung der Eigenschaften (Punkte, Flaechen, etc.) von Polyedern.

Version:
2009.07.30
Author:
Beat Trachsler, Schweiz

Constructor Summary
Polyeder()
          Instanziert ein Polyeder ohne Namen mit 0 Ecken.
Polyeder(PolyederReader myReader)
          Instanziert ein Polyeder anhand der Daten aus myReader.
Polyeder(String name)
          Instanziert ein Polyeder mit Namen Name und Anzahl Ecken e.
 
Method Summary
 void addFace(Face face)
          Fuege die Flaeche face zur Flaechenliste des Polyeders hinzu.
 void addVertex(Point P)
          Fuegt den Punkt P als Ecke hinzu.
 void generateNormals()
          Erzeugt Normalenvektoren zu den Oberflaechenpolygonen.
 Point getCenter(Face face)
          Gibt den Schwerpunkt zur Flaeche face aus.
 Iterator<Face> getFaces()
          Gibt einen Iterator für die Flaechen des Polyeders aus.
 String getName()
          Gibt den Namen des Polyeders aus.
 Vector getNormal(Face face)
          Gibt den Normalenvektor zur Flaeche face aus.
 int getNumOfVertices()
          Gibt die Anzahl der Ecken des Polyeders aus.
 Point getVertex(int i)
          Gibt die Ecke mit der Nummer i als Punkt vom Typ Point aus.
 void loadData(PolyederReader myReader)
          Aktualisiert die Daten des Polyeders anhand der Daten aus myReader.
 void rotate(double alpha, char axis)
          Dreht das Polyeder um den Winkel alpha um die Drehachse axis.
 void scale(double factor)
          Skaliert das Polyeder mit dem Faktor factor.
 void setFaces(TreeSet<Face> faces)
          Setzt die Flaechenliste des Polyeders auf faces.
 void setName(String name)
          Setzt den Namen des Polyeders auf name.
 void setVertex(int i, Point P)
          Setzt die Ecke mit der Nummer i auf den Punkt P.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Polyeder

public Polyeder(String name)
Instanziert ein Polyeder mit Namen Name und Anzahl Ecken e.

Parameters:
name - Name des Polyeders

Polyeder

public Polyeder()
Instanziert ein Polyeder ohne Namen mit 0 Ecken.


Polyeder

public Polyeder(PolyederReader myReader)
Instanziert ein Polyeder anhand der Daten aus myReader.

Parameters:
myReader - PolyederReader fuer Datenfiles
Method Detail

getName

public String getName()
Gibt den Namen des Polyeders aus.

Returns:
Name des Polyeders

setName

public void setName(String name)
Setzt den Namen des Polyeders auf name.

Parameters:
name - neuer Name des Polyeders

getNumOfVertices

public int getNumOfVertices()
Gibt die Anzahl der Ecken des Polyeders aus.

Returns:
Anzahl der Ecken

getVertex

public Point getVertex(int i)
Gibt die Ecke mit der Nummer i als Punkt vom Typ Point aus.

Parameters:
i - Eckennummer
Returns:
Ecke als Point

addVertex

public void addVertex(Point P)
Fuegt den Punkt P als Ecke hinzu.

Parameters:
P - Punkt P vom Typ Point

setVertex

public void setVertex(int i,
                      Point P)
Setzt die Ecke mit der Nummer i auf den Punkt P.

Parameters:
i - Eckennummer
P - Punkt P vom Typ Point

getFaces

public Iterator<Face> getFaces()
Gibt einen Iterator für die Flaechen des Polyeders aus.

Returns:
Iterator für die Flaechen

setFaces

public void setFaces(TreeSet<Face> faces)
Setzt die Flaechenliste des Polyeders auf faces.

Parameters:
faces - neue Flaechenliste des Polyeders

addFace

public void addFace(Face face)
Fuege die Flaeche face zur Flaechenliste des Polyeders hinzu.

Parameters:
face - neue Flaeche

getNormal

public Vector getNormal(Face face)
Gibt den Normalenvektor zur Flaeche face aus.

Parameters:
face - Oberflaechenpolygon
Returns:
Normalenvektor

getCenter

public Point getCenter(Face face)
Gibt den Schwerpunkt zur Flaeche face aus.

Parameters:
face - Oberflaechenpolygon
Returns:
Schwerpunkt

generateNormals

public void generateNormals()
Erzeugt Normalenvektoren zu den Oberflaechenpolygonen.


loadData

public void loadData(PolyederReader myReader)
Aktualisiert die Daten des Polyeders anhand der Daten aus myReader.

Parameters:
myReader - PolyederReader fuer Datenfiles

scale

public void scale(double factor)
Skaliert das Polyeder mit dem Faktor factor.

Parameters:
factor - Skalierungsfaktor

rotate

public void rotate(double alpha,
                   char axis)
Dreht das Polyeder um den Winkel alpha um die Drehachse axis.

Parameters:
alpha - Drehwinkel (im Bogenmass)
axis - Drechachse ('x', 'y' oder 'z')