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
Version imprimable
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
Merci de lire les règles du forum avant de poster !Citation:
c'est urgent
Tu ne respectes pas les règles et tu voudrais qu'on t'aide ?
Bonjour
je ne comprends pas de quoi tu parles. pourquoi dois-je relire les règles?
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
Je comprends ce que tu veux dire mais c'était pas la peine de t'énerver. :P
Voilà je me réexplique.
J'utilise la classe PickHighLightBehavior (exemples 3D) . Le code est le suivant:Et lorsque je compile voici mon message d'erreur:Code:
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); } } }
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.Code:
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)