|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Group
construction.Block
Ein Block ist ein n-eckiger Körper, wobei n eine gerade, ganzzahlige Zahl grösser 5 ist. Ein Block besteht aus einem Boden und einer Decke. Boden und Decke sind zwei ebene, nicht-konvexe Polygone. Beide Polygone haben die selbe Anzahl an Ecken. Zwischen den jeweiligen Kanten der beiden Polygone werden Vierecke aufgespannt, wobei alle vier Ecken in der selben Ebene liegen. Die Seiten eines Blocks schneiden sich nicht. Ein Block kann positiv oder negativ sein. Wenn ein Block positiv ist, so kann er von Außen betrachtet werden. Das Innere des Blocks ist also nicht sichtbar. Befindet man sich jedoch innerhalb des Blocks, kann man nach Außen blicken. Der Block selbst ist dann nicht sichtbar. Ist ein Block negativ, so kann man von Außen in ihn hineinblicken. Befindet man sich innerhalb des Blocks, so sieht man nur den Block. Alles außerhalb des Blocks ist nicht sichtbar. Mehrere Blöcke können miteinander verbunden werden, wobei sie jedoch unterschiedlich ausgerichtete (positiv/negativ) sein müssen. Auf diese Weise ist es z.B. möglich in einen positiven Block ein Loch zu schneiden, indem er mit einem negativen Block verbunden wird. Durch diese Methodik wird eine geringe CSG (Constructive Solid Geometry) Funktionalität ermöglicht.
Field Summary | |
static int |
NEGATIVE
Der Block ist negativ. |
static int |
POSITIVE
Der Block ist positiv. |
Fields inherited from class javax.media.j3d.Group |
ALLOW_CHILDREN_EXTEND, ALLOW_CHILDREN_READ, ALLOW_CHILDREN_WRITE, ALLOW_COLLISION_BOUNDS_READ, ALLOW_COLLISION_BOUNDS_WRITE |
Fields inherited from class javax.media.j3d.Node |
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING |
Constructor Summary | |
Block(javax.vecmath.Point3f[] floorPoint,
javax.vecmath.Point3f[] ceilingPoint)
Legt einen Block mit Boden, Decke und Wänden an. |
Method Summary | |
javax.media.j3d.Node |
cloneNode(boolean forceDuplicate)
|
boolean |
connect(Block other,
javax.media.j3d.Transform3D otherTransform)
Verbindet zwei Blöcke miteinander. |
void |
duplicateNode(javax.media.j3d.Node orgNode,
boolean forceDuplicate)
|
Plane |
getPlane(int index)
Gibt die Plane mit dem übergebenen Index zurück. |
java.util.Iterator |
getPlanes()
Gibt einen Iterator zurück, der alle Planes des Blocks enthält. |
int |
getVolumeState()
Gibt den Volumenstatus des Blocks zurück. |
boolean |
isContact(Block other,
javax.media.j3d.Transform3D otherTransform)
Ermittelt ob dieser Block mit dem übergebenen Block in Kontakt steht. |
int |
numPlanes()
Gibt die Anzahl der Planes des Blocks zurück. |
void |
setPlaneTexture(javax.media.j3d.Texture[] texture)
Setzt alle Texturen des Blocks. |
Methods inherited from class javax.media.j3d.Group |
addChild, getAllChildren, getAlternateCollisionTarget, getChild, getCollisionBounds, indexOfChild, insertChild, moveTo, numChildren, removeAllChildren, removeChild, removeChild, setAlternateCollisionTarget, setChild, setCollisionBounds |
Methods inherited from class javax.media.j3d.Node |
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, getBounds, getBoundsAutoCompute, getCollidable, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable |
Methods inherited from class javax.media.j3d.SceneGraphObject |
clearCapability, clearCapabilityIsFrequent, getCapability, getCapabilityIsFrequent, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setUserData, updateNodeReferences |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int POSITIVE
public static final int NEGATIVE
Constructor Detail |
public Block(javax.vecmath.Point3f[] floorPoint, javax.vecmath.Point3f[] ceilingPoint) throws java.lang.IllegalArgumentException
floorPoint
- Punktarray, welche das Bodenpolygon beschreibt.ceilingPoint
- Punktarray, welche das Deckenpolygon beschreibt.
java.lang.IllegalArgumentException
- Wenn die Anzahl der Punkte in den beiden
Listen nicht übereinstimmt.Method Detail |
public java.util.Iterator getPlanes()
public Plane getPlane(int index) throws java.lang.IndexOutOfBoundsException
index
- Index der gewündschten Plane.
java.lang.IndexOutOfBoundsException
- Wenn der Index ausserhalb des
zulässigen Bereichs ist.public int getVolumeState()
public void setPlaneTexture(javax.media.j3d.Texture[] texture)
texture
- Array von Texturen. Die Anzahl der Texturen im Array
bestimmt für was die Texturen verwendet werden:
getPlanes()
,
getPlane(int)
public boolean connect(Block other, javax.media.j3d.Transform3D otherTransform) throws java.lang.IllegalArgumentException
other
in Kontakt steht, d.h. dass
die beiden Planes parallel zueinander sind, in der selben Ebene
liegen und sich überschneiden.
Steht keine Plane mit einer anderen in Kontakt, kommt es nicht zu einer
Verbindung.
other
- Block, mit dem dieser Block verbunden werden soll.otherTransform
- Transformation bezüglich des lokalen
Koordinatensystems von this
, welche auf
other
angewendet wird.
true
, wenn die beiden Blöcke miteinander
verbunden wurden, sonst false
.
java.lang.IllegalArgumentException
public boolean isContact(Block other, javax.media.j3d.Transform3D otherTransform)
other
- Der zu überprüfende Block.otherTransform
- Transformation bezüglich des lokalen
Koordinatensystems von this
, welche auf
other
angewendet wird.
true
, wenn die beide Blöcke miteinander in
Kontakt stehen, sonst false
.public int numPlanes()
public javax.media.j3d.Node cloneNode(boolean forceDuplicate)
public void duplicateNode(javax.media.j3d.Node orgNode, boolean forceDuplicate)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |