IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Java Discussion :

java3d picking object


Sujet :

3D Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut java3d picking object
    Bonjour

    je travaille avec java3d et j'aimerais récupérer le transformgroup de l'objet sur lequel la souris a cliqué. Y a t'il un moyen de le faire? aidez moi svp. c'est urgent. Merci

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    c'est urgent
    Merci de lire les règles du forum avant de poster !
    Tu ne respectes pas les règles et tu voudrais qu'on t'aide ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Bonjour

    je ne comprends pas de quoi tu parles. pourquoi dois-je relire les règles?

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Un forum a des règles, quand on participe à un forum il faut connaître ses règles.
    Ton post viole une des règles du forum et tu le saurais si tu avais lu les règles.
    Donc lit les règles plutôt que demander pourquoi tu dois les lire Merci

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Je comprends ce que tu veux dire mais c'était pas la peine de t'énerver.
    Voilà je me réexplique.

    J'utilise la classe PickHighLightBehavior (exemples 3D) . Le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    class PickHighlightBehavior extends PickMouseBehavior {
      Appearance savedAppearance = null;
     
      Shape3D oldShape = null;
     
      Appearance highlightAppearance;
     
      public PickHighlightBehavior(Canvas3D canvas, BranchGroup root,
          Bounds bounds) {
        super(canvas, root, bounds);
        this.setSchedulingBounds(bounds);
        root.addChild(this);
        Color3f white = new Color3f(1.0f, 1.0f, 1.0f);
        Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
        Color3f highlightColor = new Color3f(0.0f, 1.0f, 0.0f);
        Material highlightMaterial = new Material(highlightColor, black,
            highlightColor, white, 80.0f);
        highlightAppearance = new Appearance();
        highlightAppearance.setMaterial(new Material(highlightColor, black,
            highlightColor, white, 80.0f));
     
        pickCanvas.setMode(PickTool.BOUNDS);
      }
     
      public void updateScene(int xpos, int ypos) {
        PickResult pickResult = null;
        Shape3D shape = null;
     
        pickCanvas.setShapeLocation(xpos, ypos);
     
        pickResult = pickCanvas.pickClosest();
        if (pickResult != null) {
          shape = (Shape3D) pickResult.getNode(PickResult.SHAPE3D);
        }
     
        if (oldShape != null) {
          oldShape.setAppearance(savedAppearance);
        }
        if (shape != null) {
          savedAppearance = shape.getAppearance();
          oldShape = shape;
          shape.setAppearance(highlightAppearance);
        }
      }
    }
    Et lorsque je compile voici mon message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Exception occurred during Behavior execution:
    javax.media.j3d.RestrictedAccessException: Group: only a BranchGroup node may be added
            at javax.media.j3d.Group.addChild(Group.java:265)
            at com.sun.j3d.utils.picking.behaviors.PickMouseBehavior.<init>(PickMouseBehavior.java:83)
            at PickHighlightBehavior.<init>(PickHighlightBehavior.java:65)
            at behav_dep.processStimulus(behav_dep.java:167)
            at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:172)
            at javax.media.j3d.J3dThread.run(J3dThread.java:256)
    En plus j'ai du mal à saisir à quoi servent les méthodes de la classe PickMouseBehavior donc j'ai vraiment besoin d'aide. N'hésitez pas à me répondre. Merci.

Discussions similaires

  1. [Java3D] Problème de Picking
    Par Casano dans le forum 3D
    Réponses: 8
    Dernier message: 28/04/2010, 15h19
  2. [JAVA3D] Problème Picking
    Par juliens9 dans le forum 3D
    Réponses: 6
    Dernier message: 18/10/2007, 17h37
  3. [java3D][collision]
    Par geofun dans le forum 3D
    Réponses: 7
    Dernier message: 12/02/2007, 14h49
  4. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo