physics.geometry
Class Polygon

java.lang.Object
  extended byphysics.geometry.Polygon
All Implemented Interfaces:
java.io.Serializable

public class Polygon
extends java.lang.Object
implements java.io.Serializable

Repräsentiert ein Dreieck im Raum. Auf die Punkte des Dreiecks kann direkt zugegriffen werden. Sollten die Punkte direkt gesetzt werden, muss vor Aufruf der Methode collided(Polygon, Point3f, Point3f, Vector3f), auch wenn dieses Objekt nur übergeben wird, die Ebenengleichung des Polygons mit der Methode calculatePlaneNormalForm() berechnet werden.

Version:
1.0 (05/04/25)
Author:
Martin Hedler
See Also:
Serialized Form

Field Summary
 javax.vecmath.Point3f a
           
 javax.vecmath.Point3f b
           
 javax.vecmath.Point3f c
           
 javax.vecmath.Vector3f normal
          Normale der Dreiecksfläche.
 
Constructor Summary
Polygon()
          Erstellt ein Dreieck, dessen Eckpunkte alle im Nullpunkt liegen.
Polygon(javax.vecmath.Point3f a, javax.vecmath.Point3f b, javax.vecmath.Point3f c)
          Erstellt ein Polygon mit den angegeben Punkten.
 
Method Summary
 void calculatePlaneNormalForm()
          Errechnet zu einem angegebenen Polygon die Ebenengleichung der Ebene, in der das Polygon liegt.
 boolean collided(Polygon other, javax.vecmath.Point3f startPoint, javax.vecmath.Point3f endPoint, javax.vecmath.Vector3f collisionNormal)
          Ermittelt, ob dieses Polygon mit dem übergebenen Polygon kollidiert.
 void set(javax.vecmath.Point3f a, javax.vecmath.Point3f b, javax.vecmath.Point3f c)
          Setzt die Punkte des Dreiecks und berechnet die Ebenengleichung.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

a

public javax.vecmath.Point3f a

b

public javax.vecmath.Point3f b

c

public javax.vecmath.Point3f c

normal

public javax.vecmath.Vector3f normal
Normale der Dreiecksfläche.

Constructor Detail

Polygon

public Polygon(javax.vecmath.Point3f a,
               javax.vecmath.Point3f b,
               javax.vecmath.Point3f c)
Erstellt ein Polygon mit den angegeben Punkten. Die Werte werden kopiert. Die Ebenengleichung wird berechnet.

Parameters:
a - Punkt des Dreiecks.
b - Punkt des Dreiecks.
c - Punkt des Dreiecks.

Polygon

public Polygon()
Erstellt ein Dreieck, dessen Eckpunkte alle im Nullpunkt liegen.

Method Detail

set

public void set(javax.vecmath.Point3f a,
                javax.vecmath.Point3f b,
                javax.vecmath.Point3f c)
Setzt die Punkte des Dreiecks und berechnet die Ebenengleichung.

Parameters:
a - Punkt des Dreiecks.
b - Punkt des Dreiecks.
c - Punkt des Dreiecks.

toString

public java.lang.String toString()

calculatePlaneNormalForm

public void calculatePlaneNormalForm()
Errechnet zu einem angegebenen Polygon die Ebenengleichung der Ebene, in der das Polygon liegt.


collided

public boolean collided(Polygon other,
                        javax.vecmath.Point3f startPoint,
                        javax.vecmath.Point3f endPoint,
                        javax.vecmath.Vector3f collisionNormal)
Ermittelt, ob dieses Polygon mit dem übergebenen Polygon kollidiert. Bei einer Kollision wird true zurück geliefert. Algorithmus nach David Scherfgen.
Achtung: Der Algorithmus erkennt keine Überschneidungen.

Parameters:
other - Das Polygon, das auf Schnitt mit diesem Polygon gepr¨ft werden soll.
startPoint - Punkt in dem der Startpunkt der Schnittstrecke gespeichert wird.
endPoint - Punkt in dem der Endpunkt der Schnittstrecke gespeichert wird.
collisionNormal - Vektor, in dem ie Kollisionsnormale gespeichert wird.
Returns:
true wenn sich die beiden Polygone schneiden, ansonsten false.