# Picking + Translation



## BigPeatrli (17. Jun 2008)

Hallo Leute!

Ich habe mir anhand von 3D Koordinaten ein Shape3D gebastelt.
Nun möchte ich dieses Objekt mit der Maus bewegen. Dass es sich bewegt, habe ich schon geschafft (Mauseingaben->Behaviors->Transform3D). Nun möchte ich es aber so hinkriegen, dass ich zuerst auf das Objekt klicken muss, damit ich es praktisch in der "Hand" habe und das Objekt genau meiner Hand (also der Maus folgt).
Ich habe mit Picking bereits das Objekt ermittelt, aber ich habe keine Idee wie man die Translation an die Maus anpasst.

Grüße Peter


----------



## ArtjomZab (17. Jun 2008)

Meinst du Drag&Drop? Oder meinst du, dass nach einem Klick auf die Shape diese sozusagen aktviert wird und du sie durch Bewegen deines Mauszeigers bewegen kannst? Du kannst einfach den MouseMotionListener verwenden, da gibts die methode mouseMoved. Mit e.getX oder e.gety kannst du dann die Koordinaten der Maus abfragen.


----------



## Guest (17. Jun 2008)

ArtjomZab hat gesagt.:
			
		

> Meinst du Drag&Drop? Oder meinst du, dass nach einem Klick auf die Shape diese sozusagen aktviert wird und du sie durch Bewegen deines Mauszeigers bewegen kannst? Du kannst einfach den MouseMotionListener verwenden, da gibts die methode mouseMoved. Mit e.getX oder e.gety kannst du dann die Koordinaten der Maus abfragen.



Drag & Drop. Das Objekt wird durch meine Maus erfasst und ich halte das Shape praktisch immer am gleichen Punkt fest während ich es verschiebe.


----------



## ArtjomZab (17. Jun 2008)

Ok, im MouseMotionListener gibts auch methoden für Drag&Drop. Einfach Koordinaten den Maus abfragen. Du kannst dann aber nur Translationen, also Verschiebungen darstellen. Verschiebung in die dritte dimension musst du dann noch berecnhen.


----------



## BigPeatrli (17. Jun 2008)

Aaaalso:
ich will ja eigentlich nicht das Objekt verschieben, sondern meine Kamera,also die ViewingPlatform. Ich will mein Objekt praktisch im Koordinatensystem lassen wo es ist (Damit sich die Rotationsachsen nicht verschieben).


----------



## ArtjomZab (17. Jun 2008)

Das is ja egal, die Methode is die gleiche -> irgendein MouseListener verwenden


----------



## BigPeatrli (17. Jun 2008)

Nochmal, ich glaub das Problem wurde nicht verstanden...
Ich aktiviere die mittlere Maustaste und klicke damit auf das Shape3D-Objekt und bewege die Maus. Während die Maustaste gedrückt ist, soll mein Shape3D GENAU der Maus folgen (das ist das Problem)
Das ganze hab ich schonmal in ein PickMouseBehavior verpackt, was funktioniert. MouseMotion und das ganze Zeug ist alles nicht das Problem.
Mein Problem ist die Bewegung/Translation. Ich will dass mein Mauszeiger das Objekt FASST und es dann rumbewegt (Mauszeiger bleibt immer an der gleichen Stelle am Shape3D-Objekt).Ich habe die Richtung mittlels der Mauskoordinaten schon bestimmt, also in welche richtung usw. Mir fehlt jetzt nur der Wert um wieviel ich die Kamera bewegen muss, dass mein Objekt intuitiv am Mauszeiger "klebt".


----------

