gishur.x.voronoi
Class SKR

java.lang.Object
  |
  +--gishur.x.voronoi.SKR
All Implemented Interfaces:
java.lang.Cloneable, Cloneable, ControlledCloneable

public class SKR
extends java.lang.Object
implements ControlledCloneable

Eine Skelettregion.

Version:
1.0
Author:
Thomas Wolf

Field Summary
protected  SimpleList edges
          Liste mit allen Skelettkanten der Skelettregion LINKSHERUM!
 boolean mark
          Markierung
static byte POINT
          Konstante für Skelettregionen mit Punkten als Basis.
static byte SEGMENT
          Konstante für Skelettregionen mit Segmenten als Basis.
 
Fields inherited from interface gishur.core.ControlledCloneable
DEEP, FLAT
 
Constructor Summary
SKR(java.lang.Object bas)
          Konstruktor.
 
Method Summary
 java.lang.Object base()
          Liefert das Basiselement der Skelettregion.
 void cleanup(SkEdge s, boolean forward)
          Löscht alle Kanten zwischen s (exklusive) und dem Listenende/anfang.
 void cleanup(SkEdge s, SkEdge t)
          Löscht alle Kanten zwischen s und t (exklusive).
 java.lang.Object clone()
          Creates a new object of the same class as this object.
 java.lang.Object clone(java.util.Hashtable h, int level)
          Clones this object.
 SkEdge first()
          Erste Kante der Skelettregion.
 SkEdge last()
          Letzte Kante der Skelettregion.
 SkEdge next(SkEdge e)
          Liefert die nach e in der Region gespeicherte Kante.
 SkEdge prev(SkEdge e)
          Liefert die vor e in der Region gespeicherte Kante.
 void remove(SkEdge e)
          Entfernt die Kante e aus der Skelettregion.
 SkEdge scan(SkEdge e, XPoint cut, boolean left)
          Sucht einen Schnittpunkt dieser Region mit der Kante e (die ebenfalls zu dieser Region gehören muß, indem die Kanten der Reihe nach links bzw. rechtsherum untersucht werden.
 java.lang.String toShortString()
           
 java.lang.String toString()
          Überschreibt Object.toString().
 byte type()
          Liefert den Typ der Skelettregion (des Basiselements).
 XPoint xpoint()
          Liefert das Basiselement als XPoint, falls es von diesem Typ ist.
 XSegment xsegment()
          Liefert das Basiselement als XSegment, falls es von diesem Typ ist.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SEGMENT

public static final byte SEGMENT
Konstante für Skelettregionen mit Segmenten als Basis.

POINT

public static final byte POINT
Konstante für Skelettregionen mit Punkten als Basis.

edges

protected SimpleList edges
Liste mit allen Skelettkanten der Skelettregion LINKSHERUM!

mark

public boolean mark
Markierung
Constructor Detail

SKR

public SKR(java.lang.Object bas)
Konstruktor. Erzeugt eine neue Skelettregion zum ELement bas. bas muß ein Segment oder ein Punkt sein.
Parameters:
bas - Basiselement
Method Detail

toString

public java.lang.String toString()
Überschreibt Object.toString().
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

toShortString

public java.lang.String toShortString()

clone

public java.lang.Object clone()
Creates a new object of the same class as this object. It then initializes each of the new object's fields by assigning it the same value as the corresponding field in this object. No constructor is called. In some Implementations, the fields are cloned, if possible (deep clone).
Specified by:
clone in interface Cloneable
Overrides:
clone in class java.lang.Object
Returns:
a clone of this object.

clone

public java.lang.Object clone(java.util.Hashtable h,
                              int level)
Description copied from interface: ControlledCloneable
Clones this object. According to the parameter level, this object will be cloned down to level levels. That means, the object will be cloned. If level==-1(==DEEP), every object, which can be reached by traversing the references beginning with /this object will be cloned if possible. This recursion stopps, if there are no more object to clone, or no reachable object implements Cloneable. If level==0(==FLAT), no object contained by this object will be cloned. Only the references will be maintained. If level>=1, the recursion will stopp after cloning level generations (or earlier if e.g. no more contained objects are cloneable).
The recursive cloning stopps, if there's a ring structure. In this case, all Objects implementing Cloneable are cloned, and connected proper, so that even ring structures are cloned as rings.
Specified by:
clone in interface ControlledCloneable
Following copied from interface: gishur.core.ControlledCloneable
Parameters:
h - Hastable which containes all objects already cloned (with their original objects as keys), to avoid multiple cloning of the same object (if h==null a new Hashtable will be created - you can use null to start a clone recursion)
level - indicates how many generations should be cloned recursive at most
Returns:
the cloned Object
Throws:
InternalError - - if the Object could not be cloned properly

base

public java.lang.Object base()
Liefert das Basiselement der Skelettregion.
Returns:
Basiselement

type

public byte type()
Liefert den Typ der Skelettregion (des Basiselements).
Returns:
eine der Konstanten POINT oder SEGMENT

xsegment

public XSegment xsegment()
Liefert das Basiselement als XSegment, falls es von diesem Typ ist.
Returns:
Basissegment

xpoint

public XPoint xpoint()
Liefert das Basiselement als XPoint, falls es von diesem Typ ist.
Returns:
Basispunkt

first

public SkEdge first()
Erste Kante der Skelettregion.
Returns:
erste Skelettregion

last

public SkEdge last()
Letzte Kante der Skelettregion.
Returns:
letzte Skelettregion

next

public SkEdge next(SkEdge e)
Liefert die nach e in der Region gespeicherte Kante.
Parameters:
e - Basiskante
Returns:
Nachfolgerkante

prev

public SkEdge prev(SkEdge e)
Liefert die vor e in der Region gespeicherte Kante.
Parameters:
e - Basiskante
Returns:
Vorgängerkante

remove

public void remove(SkEdge e)
Entfernt die Kante e aus der Skelettregion.
Parameters:
e - zu entfernende Kante

cleanup

public void cleanup(SkEdge s,
                    SkEdge t)
Löscht alle Kanten zwischen s und t (exklusive).
Parameters:
s - Startkante
t - Endkante

cleanup

public void cleanup(SkEdge s,
                    boolean forward)
Löscht alle Kanten zwischen s (exklusive) und dem Listenende/anfang.
Parameters:
s - Startkante
forward - falls true, wird bis zum Ende, sonst rückwärts bis zum Anfang gelöscht

scan

public SkEdge scan(SkEdge e,
                   XPoint cut,
                   boolean left)
Sucht einen Schnittpunkt dieser Region mit der Kante e (die ebenfalls zu dieser Region gehören muß, indem die Kanten der Reihe nach links bzw. rechtsherum untersucht werden.
Parameters:
e - Startkante, mit der ein Schnitt gesucht wird
cut - Punkt, der auf Schnittposition gesetzt wird
left - Drehrichtung: falls true links, ansonsten rechts
Returns:
Kante, die e schneidet bzw. null, falls kein Schnitt