Picking: Vom Shape3D zum eigentlichen Objekt

Status
Nicht offen für weitere Antworten.

Quaxli

Top Contributor
Hi,

ist wahrscheinlich was ganz Simples, aber ich krieg's nicht raus. Ich habe 2 Objekte vom Typ Sphere (von denen ich später mal ein Objekt erben lassen will). Diese will ich per Mausklick auswählen, was auch klappt:

Code:
	public void mouseClicked(MouseEvent e) {
		
		Node picked;
		PickCanvas pick = new PickCanvas(c3d,rootbg);
		PickResult[] presult;
		int rest = 0;
		
		pick.setTolerance(0f);
		pick.setMode(PickTool.GEOMETRY);
		pick.setShapeLocation(e);
		presult = pick.pickAllSorted();
		
		if(presult==null){
			System.out.println("nix");
		}else{
			picked = presult[rest].getObject();
			System.out.println(picked);
			Sphere temp = (Sphere) picked;
			System.out.println(temp);
			rest++;
		}
		
		
	}

Allerding liefert mirdie Methode ein Shape3D zurück und ich hätte gerne die Referenz auf meine Sphere bzw. später dann mal mein eigenes Objekt. Mit einem Cast geht's aber nicht. Wie komme ich also von Shape3D zu meinem Objekt?
 

Illuvatar

Top Contributor
Naja da wirst du bei Primitives so deine Probleme haben, da ja ein Primitive aus verschiedenen Shape3Ds besteht. (Also, eine Sphere jetzt nicht gerade, aber das Problem bleibt das gleiche ;) ) Die Shape3Ds kennen das Primitive aber eben nicht.

a) Du machst dir ne große Map mit all deinen Spheres und ihren Shape3Ds
b) Du baust dir die Kugel selber, wenn dein eigenes Objekt dann das Shape3D ist, oder zumindest das Shape3D das eigene Objekt kennt, hast du es dann direkt.
c) Du stellst das ganze so ein (weiß grad nich mehr wie das geht), dass du nicht das Shape3D, sondern die BranchGroup pickst, dann musst du nur die BranchGroup, nicht das automatische Shape3D verändern.
d) Wohl die beste Möglichkeit, die mir aber jetzt erst einfällt wo ich den Rest schon geschrieben hab... du gibst den jeweiligen Shape3Ds per setUserData eine Referenz auf die Sphere / dein eigenes Objekt.
 

Quaxli

Top Contributor
Doch umständlicher als ich dachte.... :(
Danke für die Tipps, ich werde mal etwas rumprobieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Fehlermeldung(Picking)Shape3D: nocapability to get geometrie Spiele- und Multimedia-Programmierung 7
C LWJGL Color Picking Textures deaktivieren Spiele- und Multimedia-Programmierung 0
R LWJGL: 3D Picking Spiele- und Multimedia-Programmierung 4
J LWJGL 3D Picking Identifizierung Spiele- und Multimedia-Programmierung 11
C Frage zu Ray-Picking mit JOGL Spiele- und Multimedia-Programmierung 13
M Java3D Picking - falsche Objekte werden gepickt Spiele- und Multimedia-Programmierung 3
truesoul Picking und Farbe ändern Spiele- und Multimedia-Programmierung 3
J Picking Selection auf ein Objekt begrenzen ! Spiele- und Multimedia-Programmierung 6
B Picking + Translation Spiele- und Multimedia-Programmierung 6
I Beim Picking werden alle Behaviors angesprochen Spiele- und Multimedia-Programmierung 4
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
aze Shape3d setApperance bleibt wirkungslos Spiele- und Multimedia-Programmierung 2
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
Developer_X Java Shape3D Example Spiele- und Multimedia-Programmierung 3
C Shape3D und Licht Spiele- und Multimedia-Programmierung 2
J Frage zu Geometry und Shape3D Spiele- und Multimedia-Programmierung 4
N Shape3D Objekt auf dem Bildschirm zentrieren Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben