www.jpct.net

General => German corner => Topic started by: engineer on November 02, 2008, 03:06:50 pm

Title: Kollisionen/Translationen ohne Rendering
Post by: engineer on November 02, 2008, 03:06:50 pm
Hi Egon,

ich versuche Kollisionen(world) Modell von jPCT ohne irgendwelchen Renderingverfahren zu nutzen, aber die Objekte(Object3D) lassen sich nicht Translieren

Bsp.:
Code: [Select]
World world = new World();

Object3D obj = Primitives.getCube(1.0f);
world.addObject(obj);

//world.buildAllObjects();

SimpleVector dir = new SimpleVector(1.0f, 0.0f, 0.0f);
boolean run = true;
while(run)
{
SimpleVector shift = obj.checkForCollisionSpherical(dir, 1.0f);
obj.translate(shift);

System.out.println("shift  " + shift);
System.out.println("origin " + obj.getOrigin());
System.out.println();
}

die Ausgabe lautet:

...
shift  (1.0,0.0,0.0)
origin (0.0,0.0,0.0)

shift  (1.0,0.0,0.0)
origin (0.0,0.0,0.0)
...

-> Objekt bewegt sich nicht

Mein Endziel wäre die "Kollisionen" und das "Rendering" komplett zu trennen, z.B. Kollisionen laufen auf einer Maschine und Rendering auf einer anderen.

Wo ist der Fehler bei mir? Ist es überhaupt möglich?
Title: Re: Kollisionen/Translationen ohne Rendering
Post by: EgonOlsen on November 02, 2008, 03:10:43 pm
Das ist problemlos möglich. Dein Fehler ist, dass getOrigin() nicht die Translation berücksichtigt. Wenn du das willst, musst getTranslation() benutzen. getOrigin() liefert quasi nur den Offset in die Welt, eine Art zusätzliche Defaulttranslation des Objektes, welche beim Erzeugen eines Objektes immer (0,0,0) ist.
Title: Re: Kollisionen/Translationen ohne Rendering
Post by: engineer on November 02, 2008, 04:40:48 pm
Jetzt funktioniert es wie ich es mir vorgeschielt habe, genauso wie zuvor, aber jetzt kann ich nachvollziehen, dass es das richtige tut! ;D
Vielen Dank für schnelle Hilfe!