org.pilotix.client.j3d
Class J3DObject

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Group
              extended by javax.media.j3d.BranchGroup
                  extended by org.pilotix.client.j3d.J3DObject
Direct Known Subclasses:
J3DArea, J3DBall, J3DObstacle, J3DShip

public class J3DObject
extends javax.media.j3d.BranchGroup

Classe mère de tous les objets en 3D du jeu.

Author:
Grégoire Colbert

Field Summary
protected  javax.media.j3d.TransformGroup rotationTG
           
protected  javax.media.j3d.Shape3D theObjectShape
           
protected  javax.media.j3d.TransformGroup translationTG
           
 
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_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
 
Constructor Summary
J3DObject()
          Construit l'arborescence Java3D minimale d'un objet 3D qui peut ensuite être inséré dans le tableau objectsJ3D de Display3D.
J3DObject(java.lang.String aShapeURL, javax.vecmath.Color3f aDynamicColor)
          Construit un objet 3D pouvant être affiché par Display3D, à partir d'un fichier contenant ses propriétés géométriques, qui est recherché dans le répertoire pilotix.config.path/shapes (par défaut ce répertoire est data/shapes/).
J3DObject(java.lang.String aShapeURL, javax.vecmath.Color3f aDynamicColor, Vector position, Angle direction)
           
 
Method Summary
 void addCamera(J3DCamera aCamera)
          Ajoute une J3DCamera, qui ne tournera pas, au-dessus de ce J3DObject.
 void addCamera(J3DCamera aCamera, boolean canRotate)
          Ajoute une J3DCamera au-dessus de ce J3DObject.
 void cameraRotationSwitch()
          Permet de changer le comportement de rotation de la caméra.
 J3DCamera getCamera()
          Renvoie la caméra associée avec ce J3DObject, si elle existe.
 void removeCamera()
          Supprime la J3DCamera associée à ce J3DObject, si elle existe; ne fait rien dans le cas contraire.
 void setAltitude(int altitude)
          Définit l'altitude de cet objet sans modifier sa position dans le plan horizontal.
 void setDirection(Angle angle)
          Définit la direction de cet objet dans le plan horizontal.
 void setPosition(Vector aVector)
          Définit la position de cet objet dans le plan horizontal sans modifier l'altitude.
 
Methods inherited from class javax.media.j3d.BranchGroup
cloneNode, compile, detach, pickAll, pickAll, pickAllSorted, pickAllSorted, pickAny, pickAny, pickClosest, 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, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

translationTG

protected javax.media.j3d.TransformGroup translationTG

rotationTG

protected javax.media.j3d.TransformGroup rotationTG

theObjectShape

protected javax.media.j3d.Shape3D theObjectShape
Constructor Detail

J3DObject

public J3DObject()
Construit l'arborescence Java3D minimale d'un objet 3D qui peut ensuite être inséré dans le tableau objectsJ3D de Display3D. Ce constructeur n'associe cependant à cette structure AUCUNE forme 3D. Il ne doit servir que pour les objets 3D qui ne peuvent pas être décrits entièrement (ou pas du tout) avec un fichier ".pilotix.shape.xml" et doivent donc faire l'objet d'une classe Java spécifique. Ces classes spécifiques peuvent donc hériter de J3DObject sans avoir un paramètre "fichier de forme 3D" en paramètre de leur constructeur. C'est le cas par exemple de J3DArea car c'est un rectangle non colorié, alors que Shape3DHandler ne permet de générer que des triangles coloriés.


J3DObject

public J3DObject(java.lang.String aShapeURL,
                 javax.vecmath.Color3f aDynamicColor)
Construit un objet 3D pouvant être affiché par Display3D, à partir d'un fichier contenant ses propriétés géométriques, qui est recherché dans le répertoire pilotix.config.path/shapes (par défaut ce répertoire est data/shapes/).

Parameters:
aShapeURL - le nom d'un fichier ".pilotix.shape.xml" dans "data/shapes"
aDynamicColor - la couleur à utiliser si l'attribut rgb="dynamic" dans le fichier XML

J3DObject

public J3DObject(java.lang.String aShapeURL,
                 javax.vecmath.Color3f aDynamicColor,
                 Vector position,
                 Angle direction)
Method Detail

setPosition

public final void setPosition(Vector aVector)
Définit la position de cet objet dans le plan horizontal sans modifier l'altitude. Le système de coordonnées du paramètre aVector est celui du serveur, une multiplication par Environment.u3d est donc effectuée pour avoir les coordonnées dans le client (réelles et non entières).

Parameters:
aVector - un vecteur définissant la position en X et en Y de l'objet.

setAltitude

public final void setAltitude(int altitude)
Définit l'altitude de cet objet sans modifier sa position dans le plan horizontal. Le système de coordonnées du paramètre altitude est celui du serveur, une multiplication par Environment.u3d est donc effectuée pour avoir les coordonnées dans le client (réelles et non entières).

Parameters:
altitude - un entier représentant la nouvelle altitude de l'objet (sa position dans le plan horizontal ne changera pas).

setDirection

public final void setDirection(Angle angle)
Définit la direction de cet objet dans le plan horizontal.

Parameters:
angle - une instance de la classe Angle représentant la direction de l'objet en degrés (0 étant vers le haut, 90 à droite, etc.)

addCamera

public void addCamera(J3DCamera aCamera)
Ajoute une J3DCamera, qui ne tournera pas, au-dessus de ce J3DObject.

Parameters:
aCamera - la caméra à mettre au-dessus de cet objet

addCamera

public void addCamera(J3DCamera aCamera,
                      boolean canRotate)
Ajoute une J3DCamera au-dessus de ce J3DObject.

Parameters:
aCamera - la caméra à mettre au-dessus de cet objet
canRotate - détermine si la caméra peut tourner dans le plan X-Y.
  • Mis à false, la caméra suivra le J3DObject mais ne tournera pas avec lui.
  • Mis à true, le nez du vaisseau (si l'objet est un vaisseau) pointera toujours vers le haut de l'écran, ce qui veut dire que c'est l'arrière-plan qui tournera et non le vaisseau.
Mettre canRotate à vrai doit rendre l'affichage plus lent, l'option par défaut est donc false.

removeCamera

public void removeCamera()
Supprime la J3DCamera associée à ce J3DObject, si elle existe; ne fait rien dans le cas contraire.


cameraRotationSwitch

public void cameraRotationSwitch()
Permet de changer le comportement de rotation de la caméra. Si la caméra tournait avec ce J3DObject autour de l'axe Z, elle ne tournera plus (son angle supérieur gauche sera vers le Nord-Ouest, son angle supérieur droit vers le Nord-Est, etc.); inversement, si elle ne pouvait pas tourner, elle reproduira désormais les mouvements de rotation appliqués à ce J3DObject.


getCamera

public final J3DCamera getCamera()
Renvoie la caméra associée avec ce J3DObject, si elle existe.

Returns:
la caméra qui suit ce J3DObject, ou null si elle n'existe pas.


artefarita.com/pilotix Pilotix 2003-2013 - Stilisto : G.C.