construction
Class Map
java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Group
javax.media.j3d.BranchGroup
construction.Map
- public class Map
- extends javax.media.j3d.BranchGroup
Eine Map ist eine BranchGroup mit speziellen Funktionen zur Verwaltung von
Sektoren. Sie stellt ein globalen Koordinatensystem zur Verfügung, in
welchem die Sektoren beschrieben werden können.
Sie erstellt aus den übergebenen Daten die Sektoren, transformiert sie
an die richtige Position und gliedert sie in den Szenegraph ein.
- Version:
- 1.0 (2005/01/31)
- Author:
- Martin Hedler
Fields inherited from class javax.media.j3d.BranchGroup |
ALLOW_DETACH |
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 |
Map()
Erstellt eine leere Map. |
Method Summary |
javax.media.j3d.Node |
cloneNode(boolean arg0)
|
Block |
createSector(javax.vecmath.Point2f[] cornerPoints,
float floorHeight,
float ceilingHeight)
Erstellt einen neuen Sektor und fügt diesen in den Szenegraphen ein. |
Block |
createSector(javax.vecmath.Point2f[] cornerPoints,
float floorHeight,
float ceilingHeight,
javax.vecmath.AxisAngle4f floorAngle,
javax.vecmath.AxisAngle4f ceilingAngle)
Erstellt einen neuen Sektor und fügt diesen in den Szenegraphen ein. |
void |
duplicateNode(javax.media.j3d.Node arg0,
boolean arg1)
|
java.util.Iterator |
getSectors()
Liefert einen Iterator aller Sektoren der Karte zurück. |
static void |
printSceneGraph(javax.media.j3d.Group g,
boolean all)
Erstellt einen Ausdruck (auf der Standardausgabe) des Szenegraph der
übergebenen Group. |
void |
setDefaultTextures(javax.media.j3d.Texture[] tex)
Setzt die Texturen, welche die Sektoren bei ihrer Erstellung erhalten
sollen. |
void |
updateNodeReferences(javax.media.j3d.NodeReferenceTable arg0)
|
Methods inherited from class javax.media.j3d.BranchGroup |
compile, detach, pickAll, pickAllSorted, pickAny, pickClosest |
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 |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Map
public Map()
- Erstellt eine leere Map.
setDefaultTextures
public void setDefaultTextures(javax.media.j3d.Texture[] tex)
- Setzt die Texturen, welche die Sektoren bei ihrer Erstellung erhalten
sollen. Diese Texturen werden nur bei den Sektoren gesetzt, die nach dem
Aufruf dieser Methode erstellt werden.
Um für einzelne Sektoren die Texturen zu setzen, muss auf das
Sector Objekt direkt zugegriffen werden. Siehe hierzu die Methode
Block.setPlaneTexture(Texture[]).
- Parameters:
tex
- Array von Texturen. Die Anzahl der Texturen im Array
bestimmt für was die Texturen verwendet werden:
- Befindet sich nur eine Textur im Array, so wird die
Textur für alle Wände, den Boden und die
Decke verwendet.
- Befinden sich zwei Texturen im Array, so wird die erste
Textur für den Boden und die Decke verwendet und
die zweite Textur für alle Wände.
- Bei drei Texturen, wird die erste Textur für den
Boden, die zweite Textur für die Decke und die
dritte Textur für alle Wände verwendet.
Bei mehr als drei Texturen, findet der dritte Fall Anwendung
und alle weiteren Texturen werden ignoriert.- See Also:
Block.setPlaneTexture(Texture[])
printSceneGraph
public static void printSceneGraph(javax.media.j3d.Group g,
boolean all)
throws javax.media.j3d.CapabilityNotSetException
- Erstellt einen Ausdruck (auf der Standardausgabe) des Szenegraph der
übergebenen Group.
- Parameters:
g
- Die Group, von der ausgehend der Graph ausgedruckt werden soll.all
- Gibt an, ob alle Objekte des Szenegraph angezeigt werden
sollen, oder nur Sektoren.
- Throws:
javax.media.j3d.CapabilityNotSetException
- Wenn die Group Teil eines lebenen
Szenegraph ist und die benötigte Capability nicht
gesetzt ist.
createSector
public Block createSector(javax.vecmath.Point2f[] cornerPoints,
float floorHeight,
float ceilingHeight)
- Erstellt einen neuen Sektor und fügt diesen in den Szenegraphen ein.
- Parameters:
cornerPoints
- Die globalen Koordinaten der Ecken des
Sektors. Die Punkte sind im Uhrzeigersinn angeordnet, wenn ein
positiver Sektor entstehen soll und gegen den Uhrzeigersinn, wenn
ein negativer Sektor entstehen soll. Die Eckpunkte liegen alle in
der xz-Ebene, d.h. das Attribut y
von
Point2f entspricht z
.floorHeight
- Die globale Höhe des Bodens.ceilingHeight
- Die globale Höhe der Decke.
- Returns:
- Der erstellte Sektor.
createSector
public Block createSector(javax.vecmath.Point2f[] cornerPoints,
float floorHeight,
float ceilingHeight,
javax.vecmath.AxisAngle4f floorAngle,
javax.vecmath.AxisAngle4f ceilingAngle)
- Erstellt einen neuen Sektor und fügt diesen in den Szenegraphen ein.
- Parameters:
cornerPoints
- Die globalen Koordinaten der Ecken des
Sektors. Die Punkte sind im Uhrzeigersinn angeordnet, wenn ein
positiver Sektor entstehen soll und gegen den Uhrzeigersinn, wenn
ein negativer Sektor entstehen soll. Die Eckpunkte liegen alle in
der xz-Ebene, d.h. das Attribut y
von
Point2f entspricht z
.floorHeight
- Die globale Höhe des Bodens.ceilingHeight
- Die globale Höhe der Decke.floorAngle
- Die Neigung des Bodens. Die Neigungsachse muss in der
xz-Ebene liegen.ceilingAngle
- Die Neigung der Decke. Die Neigungsachse muss in der
xz-Ebene liegen.
- Returns:
- Der erstellte Sektor.
getSectors
public java.util.Iterator getSectors()
- Liefert einen Iterator aller Sektoren der Karte zurück.
- Returns:
- Der Iterator.
cloneNode
public javax.media.j3d.Node cloneNode(boolean arg0)
duplicateNode
public void duplicateNode(javax.media.j3d.Node arg0,
boolean arg1)
updateNodeReferences
public void updateNodeReferences(javax.media.j3d.NodeReferenceTable arg0)